New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add migrations_paths option to migration generator #33760
Add migrations_paths option to migration generator #33760
Conversation
Adds an option to the migration generator to allow setting the migrations paths for that migration. This is useful for applications that use multiple databases and put migrations per database in their own directories. ``` bin/rails g migration CreateHouses address:string --migrations-paths=db/kingston_migrate invoke active_record create db/kingston_migrate/20180830151055_create_houses.rb ```
@@ -24,7 +24,9 @@ def primary_key_type | |||
end | |||
|
|||
def db_migrate_path | |||
if defined?(Rails.application) && Rails.application | |||
if migrations_paths = options[:migrations_paths] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason that named plural paths here even this db_migrate_path
method returns a single path unlike other migrations_paths
?
rails/activerecord/lib/active_record/migration.rb
Line 1183 in ec387c6
self.migrations_paths = ["db/migrate"] |
rails/activerecord/lib/active_record/tasks/database_tasks.rb
Lines 84 to 86 in cc81cd3
def migrations_paths | |
@migrations_paths ||= Rails.application.paths["db/migrate"].to_a | |
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was just using the same name that's used everywhere else.
…ors [ci skip] `migrations_paths` option was added to migration generator, with changelog entry, in rails#33760. Also `migrations_paths` option was added to model generator, with changelog entry, in rails#33994. Then `migrations_paths` was renamed to `database` and aliased as `db` in rails#34021, and was added new changelog entry. I think we should edit existed changelog entries instead adding new about changing the name of the option from `migrations_paths` to `database` since Rails 6.0 hasn't been released yet, and since It might confuse readers of the changelog file in case if they've read changelog enty about adding `migrations_paths` option but haven't read the entry about change the name of that option to `database`. @eileencodes, @gmcgibbon, @rafaelfranca Does it make sense?
* [Add migrations_paths option to migration generator](rails/rails#33760) * [Add migrations_paths option to model generator](rails/rails#33994) * [Refactor migrations_path command option to database](rails/rails#34021)
Summary
Adds an option to the migration generator to allow setting the
migrations paths for that migration. This is useful for applications
that use multiple databases and put migrations per database in their own
directories.