我在Rails数据库中遇到了一个真正的问题,我创建了一些包含以下内容的迁移...
def change
change_column(:users, :phone, :integer, limit: 100000000)
end
这显然引发了一个巨大的错误,虽然它似乎有效,我不知道我在做什么,但是我删除了迁移并创建了另一个尝试将列更改回其原始设置,作为正常整数。
这次新迁移不起作用,当我再次尝试迁移数据库时,它给了我这个错误......
Killed:9
我不知道这是什么,甚至不知道如何处理它。
有人可以为我解释一下吗? 我非常感激。
答案 0 :(得分:1)
您应该阅读有关整数属性的:limit option。
我建议你使用字符串类型代替电话属性而不是整数
<强>更新强>
将更详细地回应:
您在迁移中使用的 :limit
选项用于在与整数或二进制文件以字节为单位 >列类型。
因此,在迁移过程中,您尝试将:phone
列更改为整数并请求 100000000 字节。
现在请记住,例如,可以用 8字节编码的最大整数是 9 223 372 036 854 775 807 。
所以当你开始迁移时所得到的一切都是内存不足。
这适用于SQlite,但如果您将PostgreSQL用于数据库 - 当您尝试运行此迁移时,您会收到错误。不了解MySQL
答案 1 :(得分:0)
我已设法通过加载我的应用程序的旧副本来删除此问题,但我保留了这些文件,因为我将尝试解决问题,以便找出如何删除问题以供将来参考。