diff options
author | Andrew White <pixeltrix@users.noreply.github.com> | 2017-01-17 15:56:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-17 15:56:07 +0000 |
commit | 4965fc124914c0bede4878709097bc1128cc0dea (patch) | |
tree | bf29f9ae755c84fbc35affad3325013f9da8d875 /activerecord | |
parent | f7d8752203f791ff4ffc1ef05e05bdf780386378 (diff) | |
parent | c942361a601b9486967ab45bdc3d2d0ce926977f (diff) | |
download | rails-4965fc124914c0bede4878709097bc1128cc0dea.tar.gz rails-4965fc124914c0bede4878709097bc1128cc0dea.tar.bz2 rails-4965fc124914c0bede4878709097bc1128cc0dea.zip |
Merge pull request #27674 from kjg/migration_generator_honor_path_config
Generate migrations at path set by `config.paths["db/migrate"]`
Diffstat (limited to 'activerecord')
3 files changed, 22 insertions, 2 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 3438c04245..3d299f6233 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Place generated migrations into the path set by `config.paths["db/migrate"]` + + *Kevin Glowacz* + * Raise `ActiveRecord::InvalidForeignKey` when a foreign key constraint fails on Sqlite3. *Ryuta Kamizono* diff --git a/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb b/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb index 8511531af7..c2ae21b4b2 100644 --- a/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb +++ b/activerecord/lib/rails/generators/active_record/migration/migration_generator.rb @@ -10,7 +10,7 @@ module ActiveRecord def create_migration_file set_local_assigns! validate_file_name! - migration_template @migration_template, "db/migrate/#{file_name}.rb" + migration_template @migration_template, File.join(db_migrate_path, "#{file_name}.rb") end # TODO Change this to private once we've dropped Ruby 2.2 support. @@ -71,6 +71,14 @@ module ActiveRecord def normalize_table_name(_table_name) pluralize_table_names? ? _table_name.pluralize : _table_name.singularize end + + def db_migrate_path + if defined?(Rails) && Rails.application + Rails.application.config.paths["db/migrate"].to_ary.first + else + "db/migrate" + end + end end end end diff --git a/activerecord/lib/rails/generators/active_record/model/model_generator.rb b/activerecord/lib/rails/generators/active_record/model/model_generator.rb index a9df5212e3..b26ad42859 100644 --- a/activerecord/lib/rails/generators/active_record/model/model_generator.rb +++ b/activerecord/lib/rails/generators/active_record/model/model_generator.rb @@ -17,7 +17,7 @@ module ActiveRecord def create_migration_file return unless options[:migration] && options[:parent].nil? attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if options[:indexes] == false - migration_template "../../migration/templates/create_table_migration.rb", "db/migrate/create_#{table_name}.rb" + migration_template "../../migration/templates/create_table_migration.rb", File.join(db_migrate_path, "create_#{table_name}.rb") end def create_model_file @@ -64,6 +64,14 @@ module ActiveRecord "app/models/application_record.rb" end end + + def db_migrate_path + if defined?(Rails) && Rails.application + Rails.application.config.paths["db/migrate"].to_ary.first + else + "db/migrate" + end + end end end end |