Description
I started a brand, new Rails (8.0.2, Ruby 3.4.4) application, added the money-rails
gem and set up the following initializer
MoneyRails.configure do |config|
config.amount_column = { postfix: "_cents" }
end
Yes, I know _cents
is the default but the actual postfix value does not matter.
Next, I generate a Price
model with
bin/rails generate model Price price:integer # money and monetize do not work :-(
and fix up the migration with
sed 's/integer/monetize/' db/migrate/*.rb
before running
bin/rails db:migrate --trace
That results in
** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:load_config
** Execute db:migrate
bin/rails aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)
wrong number of arguments (given 0, expected 2)
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_definitions.rb:492:in 'column'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:9:in 'block in MoneyRails::ActiveRecord::MigrationExtensions::Table#monetize'
[...]
bin/rails:4:in '<main>'
Tasks: TOP => db:migrate
== 20250525041956 CreatePrices: migrating =====================================
-- create_table(:prices)
Output of bin/rails db:migrate --trace
** Invoke db:migrate (first_time) ** Invoke db:load_config (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:load_config ** Execute db:migrate bin/rails aborted! StandardError: An error has occurred, this and all later migrations canceled: (StandardError)wrong number of arguments (given 0, expected 2)
'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_definitions.rb:492:in 'column'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:9:in 'block in MoneyRails::ActiveRecord::MigrationExtensions::Table#monetize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:6:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:6:in 'MoneyRails::ActiveRecord::MigrationExtensions::Table#monetize'
/path/to/application/code/db/migrate/20250525041956_create_prices.rb:4:in 'block in CreatePrices#change'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:582:in 'block in ActiveRecord::Migration::Current#create_table'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:337:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#build_create_table_definition'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:301:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#create_table'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration/default_strategy.rb:10:in 'ActiveRecord::Migration::DefaultStrategy#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1056:in 'block in ActiveRecord::Migration#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1022:in 'block in ActiveRecord::Migration#say_with_time'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/benchmark.rb:17:in 'ActiveSupport::Benchmark.realtime'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1022:in 'ActiveRecord::Migration#say_with_time'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1045:in 'ActiveRecord::Migration#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:582:in 'ActiveRecord::Migration::Current#create_table'
/path/to/application/code/db/migrate/20250525041956_create_prices.rb:3:in 'CreatePrices#change'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:991:in 'ActiveRecord::Migration#exec_migration'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:975:in 'block (2 levels) in ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/benchmark.rb:17:in 'ActiveSupport::Benchmark.realtime'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:974:in 'block in ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in 'ActiveRecord::ConnectionAdapters::ConnectionPool#with_connection'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:973:in 'ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1187:in 'ActiveRecord::MigrationProxy#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1535:in 'block in ActiveRecord::Migrator#execute_migration_in_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:626:in 'block in ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:623:in 'ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1586:in 'ActiveRecord::Migrator#ddl_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1534:in 'ActiveRecord::Migrator#execute_migration_in_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1509:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1509:in 'ActiveRecord::Migrator#migrate_without_lock'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1456:in 'ActiveRecord::Migrator#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1261:in 'ActiveRecord::MigrationContext#up'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1236:in 'ActiveRecord::MigrationContext#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/tasks/database_tasks.rb:270:in 'ActiveRecord::Tasks::DatabaseTasks#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/tasks/database_tasks.rb:248:in 'ActiveRecord::Tasks::DatabaseTasks#migrate_all'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/railties/databases.rake:90:in 'block (2 levels) in
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'block in Rake::Task#execute'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'Rake::Task#execute'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:219:in 'block in Rake::Task#invoke_with_call_chain'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:199:in 'Monitor#synchronize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:199:in 'Rake::Task#invoke_with_call_chain'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:188:in 'Rake::Task#invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:188:in 'Rake::Application#invoke_task'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'block (2 levels) in Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'block in Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:147:in 'Rake::Application#run_with_threads'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:132:in 'Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:27:in 'block (2 levels) in Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:214:in 'Rake::Application#standard_exception_handling'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:27:in 'block in Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:44:in 'block in Rails::Command::RakeCommand.with_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/rake_module.rb:59:in 'Rake.with_application'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:41:in 'Rails::Command::RakeCommand.with_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:20:in 'Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:150:in 'Rails::Command.invoke_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:67:in 'block in Rails::Command.invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:143:in 'Rails::Command.with_argv'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:63:in 'Rails::Command.invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands.rb:18:in ''
/path/to/ruby/3.4.4/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
/path/to/ruby/3.4.4/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
bin/rails:4:in ''Caused by:
'
ArgumentError: wrong number of arguments (given 0, expected 2) (ArgumentError)
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_definitions.rb:492:in 'column'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:9:in 'block in MoneyRails::ActiveRecord::MigrationExtensions::Table#monetize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:6:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/money-rails-1.15.0/lib/money-rails/active_record/migration_extensions/table_pg_rails4.rb:6:in 'MoneyRails::ActiveRecord::MigrationExtensions::Table#monetize'
/path/to/application/code/db/migrate/20250525041956_create_prices.rb:4:in 'block in CreatePrices#change'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:582:in 'block in ActiveRecord::Migration::Current#create_table'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:337:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#build_create_table_definition'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:301:in 'ActiveRecord::ConnectionAdapters::SchemaStatements#create_table'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration/default_strategy.rb:10:in 'ActiveRecord::Migration::DefaultStrategy#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1056:in 'block in ActiveRecord::Migration#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1022:in 'block in ActiveRecord::Migration#say_with_time'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/benchmark.rb:17:in 'ActiveSupport::Benchmark.realtime'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1022:in 'ActiveRecord::Migration#say_with_time'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1045:in 'ActiveRecord::Migration#method_missing'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:582:in 'ActiveRecord::Migration::Current#create_table'
/path/to/application/code/db/migrate/20250525041956_create_prices.rb:3:in 'CreatePrices#change'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:991:in 'ActiveRecord::Migration#exec_migration'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:975:in 'block (2 levels) in ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/benchmark.rb:17:in 'ActiveSupport::Benchmark.realtime'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:974:in 'block in ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in 'ActiveRecord::ConnectionAdapters::ConnectionPool#with_connection'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:973:in 'ActiveRecord::Migration#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1187:in 'ActiveRecord::MigrationProxy#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1535:in 'block in ActiveRecord::Migrator#execute_migration_in_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:626:in 'block in ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activesupport-8.0.2/lib/active_support/concurrency/null_lock.rb:9:in 'ActiveSupport::Concurrency::NullLock#synchronize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/transaction.rb:623:in 'ActiveRecord::ConnectionAdapters::TransactionManager#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#within_new_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in 'ActiveRecord::ConnectionAdapters::DatabaseStatements#transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1586:in 'ActiveRecord::Migrator#ddl_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1534:in 'ActiveRecord::Migrator#execute_migration_in_transaction'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1509:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1509:in 'ActiveRecord::Migrator#migrate_without_lock'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1456:in 'ActiveRecord::Migrator#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1261:in 'ActiveRecord::MigrationContext#up'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/migration.rb:1236:in 'ActiveRecord::MigrationContext#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/tasks/database_tasks.rb:270:in 'ActiveRecord::Tasks::DatabaseTasks#migrate'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/tasks/database_tasks.rb:248:in 'ActiveRecord::Tasks::DatabaseTasks#migrate_all'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/activerecord-8.0.2/lib/active_record/railties/databases.rake:90:in 'block (2 levels) in
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'block in Rake::Task#execute'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:281:in 'Rake::Task#execute'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:219:in 'block in Rake::Task#invoke_with_call_chain'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:199:in 'Monitor#synchronize'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:199:in 'Rake::Task#invoke_with_call_chain'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/task.rb:188:in 'Rake::Task#invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:188:in 'Rake::Application#invoke_task'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'block (2 levels) in Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'Array#each'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:138:in 'block in Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:147:in 'Rake::Application#run_with_threads'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:132:in 'Rake::Application#top_level'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:27:in 'block (2 levels) in Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/application.rb:214:in 'Rake::Application#standard_exception_handling'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:27:in 'block in Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:44:in 'block in Rails::Command::RakeCommand.with_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/rake-13.2.1/lib/rake/rake_module.rb:59:in 'Rake.with_application'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:41:in 'Rails::Command::RakeCommand.with_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands/rake/rake_command.rb:20:in 'Rails::Command::RakeCommand.perform'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:150:in 'Rails::Command.invoke_rake'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:67:in 'block in Rails::Command.invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:143:in 'Rails::Command.with_argv'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/command.rb:63:in 'Rails::Command.invoke'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/railties-8.0.2/lib/rails/commands.rb:18:in ''
/path/to/ruby/3.4.4/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
/path/to/ruby/3.4.4/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
/path/to/ruby/3.4.4/lib/ruby/gems/3.4.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
bin/rails:4:in ''
Tasks: TOP => db:migrate
== 20250525041956 CreatePrices: migrating =====================================
-- create_table(:prices)
Workaround
Removing the initializer and changing the t.monetize
line in the migration to
t.monetize :price, amount: { postfix: '_cents' }
works around the issue.
Possibly related: #612