在SQL Server实例中存储多个数据库版本的最合理的方法是什么?

我们在AWS中运行一个使用Azure作为数据源的网站。 Azure通过来自客户的事务复制来填充。 客户数据库的新版本每3或4个月发布一次。 我的公司不制作这个客户数据库。 通常情况下,新版本没有附带更新脚本,所有的客户信息都被删除,而新的数据库版本则是新创build的。

如何通过这些更新来保持云中客户数据的不间断历史logging? 我只看到两个选项:为每个版本创build一个新的数据库,为每个版本创build一个新的模式。 第一个会随着时间的推移而变得昂贵,第二个会觉得不好。 如果这是一个大问题,我应该只做自己的更新脚本?

由于您需要维护历史数据以及数据库版本控制,因此您可以使用flyway创build数据库的基线,然后在您拥有DDL后将其迁移到新版本。 Flyway将为您保留版本历史logging,您可以使用数据库configuration文件使用Maven目标来查看升级。 您不必使用maven,但可以使用flyway提供的命令行界面。

本质上,它通过使用工具来满足您的第二select,因此您可以在不同的环境(例如DEV,QA,Staging,PROD)中重复这些过程。 您只需在迁移过程中使用不同的configuration文件。

这里是你将需要的软件: https : //flywaydb.org