【发布时间】:2020-02-24 13:33:13
【问题描述】:
所以我正在迁移以删除不必要的列
[:table_name_1, :table_name_2, :table_name_3, :table_name_4].each do |tables|
remove_column tables, :column_name_here
end
当我使用时
rake db:migrate --trace
我得到了这样的东西
== RemoveColumntsFromDB: migrating ========================================
-- remove_column(:table_name_1, :column_name_here)
rake aborted!
An error has occurred, all later migrations canceled:
uninitialized class variable @@columns_cache in ActiveRecord::ConnectionAdapters::OracleEnhancedAdapter
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.2.4/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:936:in `clear_table_columns_cache'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.2.4/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb:1143:in `remove_column'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:352:in `send'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:352:in `method_missing'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:328:in `say_with_time'
C:/Ruby/Ruby187/lib/ruby/1.8/benchmark.rb:293:in `measure'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:328:in `say_with_time'
C:/Ruby/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:348:in `method_missing'
有人知道为什么吗?
【问题讨论】:
-
请编辑问题并在正文中包含错误消息。这可以防止链接失效,您不应该期望 ppl 必须去其他地方才能了解您的问题的要点。
-
是的,我知道。谢谢你。由于错误代码太多,我无法在此处插入完整错误”,因此发布了它的剪切版本。
-
好像是数据库适配器的bug,你试过更新吗? Ruby 1.87 也是 2014 年的 EOL:Ed,所以你肯定需要升级。
标签: ruby-on-rails ruby migration database-migration rails-migrations