diff options
author | Stefan Kanev <stefan.kanev@gmail.com> | 2014-08-01 16:13:38 +0200 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2015-01-19 13:40:13 +0900 |
commit | 48e99a45310f5fec515305e90ff8ee2a6a61bada (patch) | |
tree | fe3354e0de2cf67944349db3b94ac7a4136ae8ec /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | 53919bbfd2b3232ec66e0cdea7b387725653ab43 (diff) | |
download | rails-48e99a45310f5fec515305e90ff8ee2a6a61bada.tar.gz rails-48e99a45310f5fec515305e90ff8ee2a6a61bada.tar.bz2 rails-48e99a45310f5fec515305e90ff8ee2a6a61bada.zip |
Add an `:if_exists` option to `drop_table`
If set to `if_exists: true`, it generates a statement like:
DROP TABLE IF EXISTS posts
This syntax is supported in the popular SQL servers, that is (at least)
SQLite, PostgreSQL, MySQL, Oracle and MS SQL Sever.
Closes #16366.
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 | 2 |
1 files changed, 1 insertions, 1 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 e9a3c26c32..b61b717a61 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -502,7 +502,7 @@ module ActiveRecord end def drop_table(table_name, options = {}) - execute "DROP#{' TEMPORARY' if options[:temporary]} TABLE #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}" + execute "DROP#{' TEMPORARY' if options[:temporary]} TABLE#{' IF EXISTS' if options[:if_exists]} #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}" end def rename_index(table_name, old_name, new_name) |