diff options
author | Yves Senn <yves.senn@gmail.com> | 2014-06-10 13:28:38 +0200 |
---|---|---|
committer | Yves Senn <yves.senn@gmail.com> | 2014-06-26 22:03:48 +0200 |
commit | 69c711f38cac85e9c8bdbe286591bf88ef720bfa (patch) | |
tree | 8d9b10a585c7ba3d2c0c5fa73e38167f388b20e8 /activerecord/test | |
parent | a48b675d54101b048228d1011ffa426c2b7fe94d (diff) | |
download | rails-69c711f38cac85e9c8bdbe286591bf88ef720bfa.tar.gz rails-69c711f38cac85e9c8bdbe286591bf88ef720bfa.tar.bz2 rails-69c711f38cac85e9c8bdbe286591bf88ef720bfa.zip |
fk: dump foreign keys to schema.rb
respect `table_name_prefix` and `table_name_suffix`.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/migration/foreign_key_test.rb | 7 | ||||
-rw-r--r-- | activerecord/test/cases/schema_dumper_test.rb | 12 |
2 files changed, 18 insertions, 1 deletions
diff --git a/activerecord/test/cases/migration/foreign_key_test.rb b/activerecord/test/cases/migration/foreign_key_test.rb index 2b99ab6ecd..f299762b42 100644 --- a/activerecord/test/cases/migration/foreign_key_test.rb +++ b/activerecord/test/cases/migration/foreign_key_test.rb @@ -1,11 +1,13 @@ require 'cases/helper' require 'support/ddl_helper' +require 'support/schema_dumping_helper' if ActiveRecord::Base.connection.supports_foreign_keys? module ActiveRecord class Migration class ForeignKeyTest < ActiveRecord::TestCase include DdlHelper + include SchemaDumpingHelper class Rocket < ActiveRecord::Base end @@ -90,6 +92,11 @@ module ActiveRecord @connection.remove_foreign_key :astronauts, name: "fancy_named_fk" assert_equal [], @connection.foreign_keys("astronauts") end + + def test_schema_dumping + output = dump_table_schema "fk_test_has_fk" + assert_match %r{\s+add_foreign_key "fk_test_has_fk", "fk_test_has_pk", column: "fk_id", primary_key: "id", name: "fk_name"$}, output + end end end end diff --git a/activerecord/test/cases/schema_dumper_test.rb b/activerecord/test/cases/schema_dumper_test.rb index 5f02d39e32..b1e7420c66 100644 --- a/activerecord/test/cases/schema_dumper_test.rb +++ b/activerecord/test/cases/schema_dumper_test.rb @@ -374,13 +374,19 @@ class SchemaDumperTest < ActiveRecord::TestCase class CreateDogMigration < ActiveRecord::Migration def up + create_table("dog_owners") do |t| + end + create_table("dogs") do |t| t.column :name, :string + t.column :owner_id, :integer end add_index "dogs", [:name] + add_foreign_key :dogs, :dog_owners, column: "owner_id" if supports_foreign_keys? end def down drop_table("dogs") + drop_table("dog_owners") end end @@ -396,13 +402,17 @@ class SchemaDumperTest < ActiveRecord::TestCase assert_no_match %r{create_table "foo_.+_bar"}, output assert_no_match %r{add_index "foo_.+_bar"}, output assert_no_match %r{create_table "schema_migrations"}, output + + if ActiveRecord::Base.connection.supports_foreign_keys? + assert_no_match %r{add_foreign_key "foo_.+_bar"}, output + assert_no_match %r{add_foreign_key "[^"]+", "foo_.+_bar"}, output + end ensure migration.migrate(:down) ActiveRecord::Base.table_name_suffix = ActiveRecord::Base.table_name_prefix = '' $stdout = original end - end class SchemaDumperDefaultsTest < ActiveRecord::TestCase |