2
|
Blaine Lafreniere · 技术社区 · 15 年前 |
![]() |
1
1
快捷方式:手动为表示基线的时间戳向模式迁移添加一个条目。您可以在这之后添加迁移,只要它们对DB模式不做任何错误的假设,它们就可以正常运行。你不能向后迁移,但这不是一个大问题。 更大的问题是,你将无法从零开始制作数据库,这将是一个长期的痛苦。 解决方法是删除所有现有迁移,并创建一个创建现有架构的新迁移。手动删除schema_migrations表中的所有内容,并为此新迁移输入一个条目。之后,您可以创建基于这个新基线的新迁移,它们应该可以很好地应用。您应该能够以正常的方式引导新的数据库。 只要您的直接SQL包含在Rails迁移中,就可以使用它。只要确保你同时实现了向上和向下的方法,你就应该是好的。实际上,我们已经采用原始SQL作为最佳实践,以避免稍后更改模型时出现问题。类似的东西
似乎无害,直到用户模型被修改为
此时,新的迁移将针对现有数据库运行,但是之前创建表并添加虚拟条目的迁移将失败,因为用户验证失败。只是使用
只要以后的迁移正确地填充它们添加的任何新列,就可以正常工作。 |
![]() |
2
1
也许你可以摆脱目前所有的迁移,然后使用
|
![]() |
3
0
我喜欢Veeti的建议,并进行了修改:rake db:schema:dump,然后将该文件移到您的开发机器上。扁平化您的Rails迁移(请参见 this SO thread on that ,根据新的模式,去掉大部分迁移,重新工作迁移。 在您的开发机器上运行这个,提交和部署。 |
![]() |
4
0
如果现有的生产数据与开发数据库模式兼容,那么我将:
如果模式不兼容,那么您可能可以遵循此过程,但是您必须在第一步创建的文件中编辑SQL,以考虑模式差异。 |
![]() |
blogger13 · 视频租赁店数据库的规范化 7 月前 |
![]() |
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 8 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 8 月前 |
|
Grenish Rai · Firestore错误“用户文档不存在” 1 年前 |
![]() |
Saijo-Shi · PLpgsql中的更新触发器 1 年前 |
![]() |
Dante · Django::配置不当:池不支持持久连接 1 年前 |
![]() |
YouLocalRUser · 删除重复行,保留第一行 1 年前 |