diff options
author | Yves Senn <yves.senn@gmail.com> | 2015-11-12 16:24:09 +0100 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2015-11-12 16:24:09 +0100 |
commit | 19398ab98af04eedb2574890ed0d8ecdf82ebb4c (patch) | |
tree | 8e2c0d2052136b82c7d8664dc146c9791fa7b4d8 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | 53d04697d5c9450ecb5b7f37bdf0d5f12dd5ded5 (diff) | |
parent | 7429633b824cf8aaeea52d11876e7bd2b8d2f256 (diff) | |
download | rails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.tar.gz rails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.tar.bz2 rails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.zip |
Merge pull request #21601 from yui-knk/fix/ar_tables_without_view2
All `AR::ConnectionAdapters#tables` return only tables(exclude views)
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 3e3bbc267b..b6e17ad4ef 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -497,18 +497,43 @@ module ActiveRecord end def tables(name = nil) # :nodoc: + ActiveSupport::Deprecation.warn(<<-MSG.squish) + #tables currently returns both tables and views. + This behavior is deprecated and will be changed with Rails 5.1 to only return tables. + Use #data_sources instead. + MSG + + if name + ActiveSupport::Deprecation.warn(<<-MSG.squish) + Passing arguments to #tables is deprecated without replacement. + MSG + end + + data_sources + end + + def data_sources sql = "SELECT table_name FROM information_schema.tables " sql << "WHERE table_schema = #{quote(@config[:database])}" select_values(sql, 'SCHEMA') end - alias data_sources tables def truncate(table_name, name = nil) execute "TRUNCATE TABLE #{quote_table_name(table_name)}", name end def table_exists?(table_name) + ActiveSupport::Deprecation.warn(<<-MSG.squish) + #table_exists? currently checks both tables and views. + This behavior is deprecated and will be changed with Rails 5.1 to only check tables. + Use #data_source_exists? instead. + MSG + + data_source_exists?(table_name) + end + + def data_source_exists?(table_name) return false unless table_name.present? schema, name = table_name.to_s.split('.', 2) @@ -519,7 +544,6 @@ module ActiveRecord select_values(sql, 'SCHEMA').any? end - alias data_source_exists? table_exists? def views # :nodoc: select_values("SHOW FULL TABLES WHERE table_type = 'VIEW'", 'SCHEMA') |