rake db:schema:dump rake db:test:prepare
全部使用以下生成的schema.rb:
t.column“cost_per_license”,:decimal,:limit => 8,:default => #
运行rake db:migrate不会导致此问题,因为它只使用迁移文件(而不是结果schema.rb)
有人在Rails 1.2中看到过这个吗?以下行生成此架构:
126_create_accounts.rb:t.column:cost_per_license,:decimal,:precision => 8,:scale => 2,:default => 0
我已经尝试过Ruby 1.8.6,1.8.7和Rails 1.2.1以及1.2.6 - 生成的所有schema.rb都有相同的语法错误。
答案 0 :(得分:1)
如果你对schema.rb产生了问题,那么你可以覆盖模块ActiveRecord类SchemaDumper以及生成特定行的方法,只需替换':default => #'with':default => 0'
根本原因你可以在特定的表上做一个show create table(如果你使用的是mysql)?是对于所有具有默认值的列还是仅为cost_per_license的列?
答案 1 :(得分:1)
想出来:
有一个供应商/插件(特别是spatial_adapter)使用一个非常旧版本的ActiveRecord的table()来修补SchemaDumper的table()函数(要么真的很旧,要么非常糟糕。)