我使用它的常用方式是
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