假设您有“lineitems”,并且您曾经从line_item定义“make”。在Rails迁移中迁移数据
最终你意识到make应该可以在自己的模型上,所以你创建了一个Make模型。
然后,您想要从line_items表中移除make列,但是要为每个line_item移除您想要find_or_create_by(line_item.make)的make。
我如何有效地在轨道迁移中做到这一点?我敢肯定,我可以为每个line_item运行一些简单的find_or_create_by,但我担心后备支持,所以我只是在这里发布此任何提示/建议/正确的方向。
谢谢!
事务性迁移仅在数据库供应商支持时才可用。 MySQL例如不提供事务性DDL,因此raise语句会导致迁移失败并使数据库处于不一致状态。 – Cluster 2013-03-06 10:39:35
如果你添加了什么集群说,也许分成两个迁移,添加一个新的列,并做你需要做的任何事情。第二,当尘土已经沉淀,然后删除任何不再需要的列。这不是完美的,但会给你一个回头路。 – Ghoti 2013-07-31 09:23:23