在Web应用程序中,如何使数据库结构保持最新?

如果在部署应用程序后数据发生更改,您如何使数据库保持最新?

我的意思是,你可以添加删除表,这是一个简单的任务.改变现有的表也很简单.但是如果你经常改变结构,你如何控制它呢?

我曾经在数据库中保留一个包含当前数据库版本的表.然后每次升级都是一个完成其工作的sql文件 – 创建新表,添加列或移动数据.文件是以这些版本命名的 – 所以如果我的升级脚本获得了数据库版本10,它只是将11.sql中的所有文件都带到N.sql并同时应用它们中的每一个递增数据库版本号.

这似乎工作正常,但我想知道 – 你的策略是什么?
如果我在一个“补丁”中对一个表进行规范化,那么这个系统似乎并不完美,之后我再次将其归一化为无论什么原因.然后它完成了两次.

但是,每次我改变一些东西时写一个完整的升级脚本似乎很痛苦,容易出错.至少更多这样的原子变化.

此外,我可以预期不同的客户可以随时运行不同的数据库版本,所以我真的应该有办法从任何一点上升.

解决方法

我个人使用了与你列出的相似的过程,我可以看到你关于改变的论点,但我很少做出改变,然后在生产站点上将其改回旧的方式.在测试中,是的,这种情况发生了,但就实际生产网站而言,我认为这不是什么大问题.

保留个人版本脚本,恕我直言不仅有利于部署,而且还有助于提供可以检查到源代码管理的项目.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些