diff --git a/lib/generators/audited/upgrade_generator.rb b/lib/generators/audited/upgrade_generator.rb index c0af0838..984a868e 100644 --- a/lib/generators/audited/upgrade_generator.rb +++ b/lib/generators/audited/upgrade_generator.rb @@ -19,8 +19,12 @@ class UpgradeGenerator < Rails::Generators::Base source_root File.expand_path("../templates", __FILE__) def copy_templates - migrations_to_be_applied do |m| - migration_template "#{m}.rb", "db/migrate/#{m}.rb" + migrations_to_be_applied do |template_name| + name = "db/migrate/#{template_name}.rb" + if options[:audited_table_name] != "audits" + name = name.gsub("_to_audits", "_to_#{options[:audited_table_name]}") + end + migration_template "#{template_name}.rb", name end end diff --git a/test/upgrade_generator_test.rb b/test/upgrade_generator_test.rb index 3ec3a6b8..76fe144c 100644 --- a/test/upgrade_generator_test.rb +++ b/test/upgrade_generator_test.rb @@ -94,4 +94,24 @@ class UpgradeGeneratorTest < Rails::Generators::TestCase assert_includes(content, "class AddCommentToAudits < ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]\n") end end + + test "generate migration with context column change" do + load_schema 6 + + run_generator %w[upgrade] + + assert_migration "db/migrate/add_context_to_audits.rb" do |content| + assert_match(/add_column :audits, :context, :jsonb/, content) + end + end + + test "generate migration with context column change for custom table name" do + load_schema 6 + + run_generator %w[upgrade --audited_table_name=custom_audits] + + assert_migration "db/migrate/add_context_to_custom_audits.rb" do |content| + assert_match(/add_column :custom_audits, :context, :jsonb/, content) + end + end end