发生了什么?
我们从MySQL迁移到Postgres并让Laravel使用psql驱动程序而不是mysql重新运行它的迁移。工作得很好 - 它设置数据库就好了。由于我们正在从Laravel迁移到Rails,因此我们创建了rails迁移来重命名字段以使其更像“类似轨道”。以及将db数据(不是结构)导入postgres。我们遇到了很多问题,但最重要的是序列现在已经被自动增量。他们试图从1开始。
我能想出什么?
我可以使用像SELECT pg_catalog.setval('availabilities_id_seq', 700, false);
之类的东西手动重置所有这些内容,但这对于包含这么多表格的多个环境执行此操作并非常有帮助。 有没有办法可以想到找到最后一个自动增量ID,然后从中设置序列?
如果您有点好奇,这里有Rails迁移移动数据,任何人都有关于我们如何做错的提示(my_models是表数组):
my_models.each do |m|
puts m
"Mysql#{m}".constantize.find_each(batch_size: 100) do |old_model|
new_model = m.constantize.new
new_model.attributes = old_model.attributes
new_model.save
end
end
答案 0 :(得分:1)
您可以查看以下讨论: