【发布时间】:2013-06-08 14:44:01
【问题描述】:
我常用的方法是
psql > ALTER TABLE transactions ALTER COLUMN date SET DEFAULT CURRENT_TIMESTAMP\g
效果很好。
在我的 RoR 应用中,我尝试以两种方式创建迁移。
1.
class TransactionsSetDefaultDateChange < ActiveRecord::Migration
change_column :transactions, :date, :datetime, :null=>false, :default=>'CURRENT_TIMESTAMP'
end
2.
class TransactionsSetDefaultDateChange < ActiveRecord::Migration
execute <<-SQL
ALTER TABLE transactions ALTER COLUMN date SET DEFAULT CURRENT_TIMESTAMP
SQL
end
两者都失败了。任何想法为什么?
PS 这种情况适用于迁移(“rake db:migrate”),但未正确应用于“rake db:setup”(丢失 SQL 语句)
class TransactionsSetDefaultDateChange < ActiveRecord::Migration
def change
execute <<-SQL
ALTER TABLE transactions ALTER COLUMN date SET DEFAULT CURRENT_TIMESTAMP
SQL
end
end
【问题讨论】:
-
对于 rake db:setup 问题,尝试将 rails 切换到 sql 模式:guides.rubyonrails.org/…
标签: ruby-on-rails postgresql timestamp migration