mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
create_table :force => true no longer tries to drop a non-existing table
Signed-off-by: Michael Koziarski <michael@koziarski.com>
This commit is contained in:
parent
8877ab5852
commit
0a21193dc6
2 changed files with 20 additions and 2 deletions
|
@ -97,8 +97,8 @@ module ActiveRecord
|
||||||
|
|
||||||
yield table_definition
|
yield table_definition
|
||||||
|
|
||||||
if options[:force]
|
if options[:force] && table_exists?(table_name)
|
||||||
drop_table(table_name, options) rescue nil
|
drop_table(table_name, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
create_sql = "CREATE#{' TEMPORARY' if options[:temporary]} TABLE "
|
create_sql = "CREATE#{' TEMPORARY' if options[:temporary]} TABLE "
|
||||||
|
|
|
@ -209,6 +209,24 @@ if ActiveRecord::Base.connection.supports_migrations?
|
||||||
ActiveRecord::Base.primary_key_prefix_type = nil
|
ActiveRecord::Base.primary_key_prefix_type = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
uses_mocha('test_create_table_with_force_true_does_not_drop_nonexisting_table') do
|
||||||
|
def test_create_table_with_force_true_does_not_drop_nonexisting_table
|
||||||
|
if Person.connection.table_exists?(:testings2)
|
||||||
|
Person.connection.drop_table :testings2
|
||||||
|
end
|
||||||
|
|
||||||
|
# using a copy as we need the drop_table method to
|
||||||
|
# continue to work for the ensure block of the test
|
||||||
|
temp_conn = Person.connection.dup
|
||||||
|
temp_conn.expects(:drop_table).never
|
||||||
|
temp_conn.create_table :testings2, :force => true do |t|
|
||||||
|
t.column :foo, :string
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
Person.connection.drop_table :testings2 rescue nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
# SQL Server, Sybase, and SQLite3 will not allow you to add a NOT NULL
|
# SQL Server, Sybase, and SQLite3 will not allow you to add a NOT NULL
|
||||||
# column to a table without a default value.
|
# column to a table without a default value.
|
||||||
|
|
Loading…
Reference in a new issue