我对我的Rails数据库有一个真正的问题,我创建了一些包含以下内容的Migrations .
def change
change_column(:users, :phone, :integer, limit: 100000000)
end
这显然造成了一个巨大的错误,尽管它似乎有效,但我完全不知道自己在做什么,然后删除了迁移,并创建了另一个尝试将列更改回原来的设置,作为一个正常的整数。
这个新的迁移没有工作,当我再次尝试迁移数据库时,它给了我这个错误.
Killed:9
我不知道这是什么,甚至不知道如何处理。
有人能帮我弄点明灯吗?我非常感激。
发布于 2015-10-07 21:57:57
您应该阅读有关整数属性的*限制选项。
我建议您对phone属性使用字符串类型,而不是整数。
更新
将作出更详细的答复:
在迁移中使用的:limit
选项用于在与整数或二进制列类型一起使用时请求以字节为单位的最大列长度。因此,在您的迁移中,您试图将:phone
列更改为整数,并向其请求100000000字节。
现在请记住,例如,可以用8字节编码的最大整数是9 223 372 036 854 775 807。
所以,当你开始迁移的时候,你得到的都是内存不足的东西。
这适用于SQlite,但如果您使用PostgreSQL作为数据库,则在尝试运行此迁移时会出现错误。不知道MySQL
发布于 2015-10-07 22:40:06
通过加载我的应用程序的旧版本,我成功地消除了这个问题,尽管我保留了这些文件,因为我将尝试修复这个问题,以便找到如何删除该问题以供以后参考。
https://stackoverflow.com/questions/33002965
复制相似问题