diff options
author | Eileen M. Uchitelle <eileencodes@users.noreply.github.com> | 2018-09-28 15:17:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-28 15:17:14 -0400 |
commit | 7bc343b3a9ef7581e665a9f70f00d494f7a3b62c (patch) | |
tree | 2473a9a73b69e2ac0062b96d5b95eb0357497fda /railties | |
parent | 9fa4342970e2c8ac24bcc595f120ab65e88095a4 (diff) | |
parent | 4775d3d051af1a506b63a7e4069c94e49c82177d (diff) | |
download | rails-7bc343b3a9ef7581e665a9f70f00d494f7a3b62c.tar.gz rails-7bc343b3a9ef7581e665a9f70f00d494f7a3b62c.tar.bz2 rails-7bc343b3a9ef7581e665a9f70f00d494f7a3b62c.zip |
Merge pull request #34021 from gmcgibbon/change_migrations_paths_command_option_to_db
Refactor migrations_path command option to database
Diffstat (limited to 'railties')
-rw-r--r-- | railties/CHANGELOG.md | 15 | ||||
-rw-r--r-- | railties/test/generators/generators_test_helper.rb | 14 | ||||
-rw-r--r-- | railties/test/generators/migration_generator_test.rb | 12 | ||||
-rw-r--r-- | railties/test/generators/model_generator_test.rb | 12 | ||||
-rw-r--r-- | railties/test/generators/scaffold_generator_test.rb | 8 |
5 files changed, 48 insertions, 13 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index a839f80eb3..37444c4cf6 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,18 @@ +* Refactors `migrations_paths` command option in generators + to `database` (aliased as `db`). Now, the migrations paths + will be read from the specified database configuration in the + current environment. + + ``` + bin/rails g model Chair brand:string --database=kingston + invoke active_record + create db/kingston_migrate/20180830151055_create_chairs.rb + ``` + + `--database` can be used with the migration, model, and scaffold generators. + + *Gannon McGibbon* + * Adds an option to the model generator to allow setting the migrations paths for that migration. This is useful for applications that use multiple databases and put migrations diff --git a/railties/test/generators/generators_test_helper.rb b/railties/test/generators/generators_test_helper.rb index ad2a55f496..355d4b09a8 100644 --- a/railties/test/generators/generators_test_helper.rb +++ b/railties/test/generators/generators_test_helper.rb @@ -42,6 +42,20 @@ module GeneratorsTestHelper end end + def with_secondary_database_configuration + ActiveRecord::Base.configurations = { + test: { + secondary: { + database: "db/secondary.sqlite3", + migrations_paths: "db/secondary_migrate", + }, + }, + } + yield + ensure + ActiveRecord::Base.configurations = {} + end + def copy_routes routes = File.expand_path("../../lib/rails/generators/rails/app/templates/config/routes.rb.tt", __dir__) destination = File.join(destination_root, "config") diff --git a/railties/test/generators/migration_generator_test.rb b/railties/test/generators/migration_generator_test.rb index 5c57d607fc..5812cbdfc9 100644 --- a/railties/test/generators/migration_generator_test.rb +++ b/railties/test/generators/migration_generator_test.rb @@ -254,11 +254,13 @@ class MigrationGeneratorTest < Rails::Generators::TestCase end end - def test_migrations_paths_puts_migrations_in_that_folder - run_generator ["create_books", "--migrations_paths=db/test_migrate"] - assert_migration "db/test_migrate/create_books.rb" do |content| - assert_method :change, content do |change| - assert_match(/create_table :books/, change) + def test_database_puts_migrations_in_configured_folder + with_secondary_database_configuration do + run_generator ["create_books", "--database=secondary"] + assert_migration "db/secondary_migrate/create_books.rb" do |content| + assert_method :change, content do |change| + assert_match(/create_table :books/, change) + end end end end diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb index 5a0c2f74c7..b06db6dd8a 100644 --- a/railties/test/generators/model_generator_test.rb +++ b/railties/test/generators/model_generator_test.rb @@ -392,11 +392,13 @@ class ModelGeneratorTest < Rails::Generators::TestCase end end - def test_migrations_paths_puts_migrations_in_that_folder - run_generator ["account", "--migrations_paths=db/test_migrate"] - assert_migration "db/test_migrate/create_accounts.rb" do |content| - assert_method :change, content do |change| - assert_match(/create_table :accounts/, change) + def test_database_puts_migrations_in_configured_folder + with_secondary_database_configuration do + run_generator ["account", "--database=secondary"] + assert_migration "db/secondary_migrate/create_accounts.rb" do |content| + assert_method :change, content do |change| + assert_match(/create_table :accounts/, change) + end end end end diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index dbcf49290e..94aab15aa9 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -476,10 +476,12 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase end end - def test_scaffold_generator_migrations_paths - run_generator ["posts", "--migrations-paths=db/kingston_migrate"] + def test_scaffold_generator_database + with_secondary_database_configuration do + run_generator ["posts", "--database=secondary"] - assert_migration "db/kingston_migrate/create_posts.rb" + assert_migration "db/secondary_migrate/create_posts.rb" + end end def test_scaffold_generator_password_digest |