aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorStefan Kanev <stefan.kanev@gmail.com>2014-08-01 16:13:38 +0200
committerRyuta Kamizono <kamipo@gmail.com>2015-01-19 13:40:13 +0900
commit48e99a45310f5fec515305e90ff8ee2a6a61bada (patch)
treefe3354e0de2cf67944349db3b94ac7a4136ae8ec /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parent53919bbfd2b3232ec66e0cdea7b387725653ab43 (diff)
downloadrails-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.rb2
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)