【发布时间】:2020-04-28 13:39:42
【问题描述】:
我编写了一个 C# winforms 应用程序,并在其上绑定了一个 MySQL 数据库。
客户还会在他的网站上获得数据库的副本。
如果我对我的数据库结构进行了一些更改,并希望在客户数据库以及设置的一部分或其他内容中进行相同的更改。在最佳实践中如何做到这一点?
【问题讨论】:
-
你的意思是改变结构?在最简单的情况下,您可以确保生成您所做的所有更改的 SQL 脚本(除非您是通过 Entity Framework Code First 进行的 - 您没有提到?),然后您可以在其他数据库上重新使用它以做同样的改变。确保您对脚本进行源代码控制,然后您就有了它的记录并能够在其他环境中重现它们。当然,如果更改会影响数据(例如,您必须移动数据、删除数据或添加新数据作为更改的一部分),那么它会变得更加复杂。
-
您需要存储所有数据库“更改脚本”(更新架构)并确定哪些尚未应用,然后在交付新代码时应用它们。 flywaydb.org 是一个可以做到这一点的项目。