aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorAndrew White <pixeltrix@users.noreply.github.com>2017-01-17 15:56:07 +0000
committerGitHub <noreply@github.com>2017-01-17 15:56:07 +0000
commit4965fc124914c0bede4878709097bc1128cc0dea (patch)
treebf29f9ae755c84fbc35affad3325013f9da8d875 /activerecord
parentf7d8752203f791ff4ffc1ef05e05bdf780386378 (diff)
parentc942361a601b9486967ab45bdc3d2d0ce926977f (diff)
downloadrails-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')
-rw-r--r--activerecord/CHANGELOG.md4
-rw-r--r--activerecord/lib/rails/generators/active_record/migration/migration_generator.rb10
-rw-r--r--activerecord/lib/rails/generators/active_record/model/model_generator.rb10
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