diff options
author | fatkodima <fatkodima@rambler.ru> | 2017-12-09 18:02:51 +0200 |
---|---|---|
committer | fatkodima <fatkodima123@gmail.com> | 2018-11-08 15:26:07 +0200 |
commit | 6e0ff0053702cd1dc0f149f4ca59f968a2560d72 (patch) | |
tree | 8cb2303b510fb0b815ce95c5335015c74ec95642 /activerecord/test/cases | |
parent | 7f7e7e8b39f56d35993bec4247ac0295cd0c943e (diff) | |
download | rails-6e0ff0053702cd1dc0f149f4ca59f968a2560d72.tar.gz rails-6e0ff0053702cd1dc0f149f4ca59f968a2560d72.tar.bz2 rails-6e0ff0053702cd1dc0f149f4ca59f968a2560d72.zip |
Add an :if_not_exists option to create_table
[fatkodima & Stefan Kanev]
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/migration_test.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index 5d060c8899..661163b4a1 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -127,6 +127,36 @@ class MigrationTest < ActiveRecord::TestCase assert_equal 20131219224947, migrator.current_version end + def test_create_table_raises_if_already_exists + connection = Person.connection + connection.create_table :testings, force: true do |t| + t.string :foo + end + + assert_raise(ActiveRecord::StatementInvalid) do + connection.create_table :testings do |t| + t.string :foo + end + end + ensure + connection.drop_table :testings, if_exists: true + end + + def test_create_table_with_if_not_exists_true + connection = Person.connection + connection.create_table :testings, force: true do |t| + t.string :foo + end + + assert_nothing_raised do + connection.create_table :testings, if_not_exists: true do |t| + t.string :foo + end + end + ensure + connection.drop_table :testings, if_exists: true + end + def test_create_table_with_force_true_does_not_drop_nonexisting_table # using a copy as we need the drop_table method to # continue to work for the ensure block of the test |