当前位置:  开发笔记 > 编程语言 > 正文

将数据库更改从开发迁移到实时

如何解决《将数据库更改从开发迁移到实时》经验,为你挑选了2个好方法。

推动新功能生存的最大风险可能在于新代码所需的数据库修改.在Rails中,我相信它们具有"迁移",您可以在其中以编程方式对开发主机进行更改,然后在使用修订模式的代码中进行相同的更改.如果需要,可以同步方式滚动两个背面.

有没有人遇到过类似的PHP/MySQL工具集?很想听听它,或任何程序或流程解决方案,以帮助降低风险...



1> yukondude..:

我从未遇到过能够完成这项工作的工具.相反,我使用了单个文件,编号以便我知道运行它们的顺序:本质上是Rails迁移的手动版本,但没有回滚.

这是我正在谈论的事情:

000-clean.sql         # wipe out everything in the DB
001-schema.sql        # create the initial DB objects
002-fk.sql            # apply referential integrity (simple if kept separate)
003-reference-pop.sql # populate reference data
004-release-pop.sql   # populate release data
005-add-new-table.sql # modification
006-rename-table.sql  # another modification...

我从来没有遇到任何问题这样做,但它不是很优雅.由您来跟踪需要为给定更新运行的脚本(更智能的编号方案可能有所帮助).它也适用于源代码控制.

处理代理键值(来自自动编号列)可能很麻烦,因为生产数据库可能具有与开发DB不同的值.因此,如果可能的话,我尝试永远不要在任何修改脚本中引用文字代理键值.



2> John Milliki..:

我不相信程序化迁移.如果这是一个简单的更改,例如添加NULLable列,我只需将其直接添加到实时服务器.如果它更复杂或需要更改数据,我将编写一对SQL迁移文件并针对副本数据库进行测试.

使用迁移时,请始终测试回滚迁移.这是你的紧急"哦屎"按钮.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有