aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.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/postgresql/schema_statements.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/postgresql/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
index a90adcf4aa..afd7a17c03 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
@@ -112,7 +112,7 @@ module ActiveRecord
end
def drop_table(table_name, options = {})
- execute "DROP TABLE #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}"
+ execute "DROP TABLE#{' IF EXISTS' if options[:if_exists]} #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}"
end
# Returns true if schema exists.