【发布时间】:2011-03-05 19:00:00
【问题描述】:
我正在尝试将 db:migrations 耙入我的 heorku 实例中,但出现错误。常见问题解答将我的错误描述如下:
无法更改列类型
示例:PGError: ERROR: column “verified_at”不能转换为类型 “日期”
原因:PostgreSQL 不知道怎么做 将该表中的所有行转换为 指定类型。很可能意味着 你有一个整数或字符串 那个专栏。
解决方案:检查您的记录并 确保它们可以转换为 新型。有时更容易 只是避免使用change_column, 重命名/创建新列 而是。
我现在如何更改此迁移。这是我遇到的问题。对于我的联系人表,我创建了以下内容:
t.string :date_entered
在以后的迁移中,我执行以下操作:
change_column :contacts, :date_entered, :date
这个 change_column 似乎是问题所在。
我应该...手动更改迁移吗?有没有办法可以清理表中的数据(我不知道 Heroku 会识别表中的数据,因为我正在做 rake)。
我显然需要更改这个值,它在我的整个应用程序中都会用到。谢谢。
这就是我正在尝试的……想法?
def self.up
#change_column :contacts, :date_entered, :date
#this fails in postgres, so trying the same outcome
rename_column :contacts, :date_entered, :date_entered_old
add_column :contacts, :date_entered, :date
remove_column :contacts, :date_entered_old
end
def self.down
add_column :contacts, :date_entered_old
remove_column :contacts, :date_entered
rename_column :contacts, :date_entered_old, :date_entered
end
【问题讨论】:
标签: ruby-on-rails ruby database postgresql heroku