自去年以来,我一直在构建ASP.NET Core MVC Web应用程序,由于数据库随着特性和功能的发展,我的项目中目前有100个迁移文件。我的开发/测试数据库显然与此迁移保持同步。
现在,创建生产环境的时间到了,我想拥有一个仅包含表模式的空数据库。因此,我只是无法复制测试数据库来创建生产数据库。
因此,关于创建此生产数据库的问题/困境如下;1.我可以通过运行Add-Migration命令(需要从项目中删除现有的迁移文件)来创建我的生产数据库,或者2.在SQL Management Server中创建表架构,并从测试数据库中保留__EFMigrationsHistory]
使用[1],我不确定如何继续使用同一项目管理测试数据库。对于[2],我不确定是否有任何缺点。
那么,生产部署的标准或最佳实践是什么?
[如果您担心所拥有的迁移数量,您仍然可以选择通过删除迁移(以及手动删除表和数据)并创建新的“初始创建”迁移来重新开始。如果执行此操作,则可能要先导出任何测试或配置数据(请参见下文)。
这是因为过渡和生产环境往往比开发更受严格控制,因此最好了解最适合该环境的过程。
您需要检查您的开发和登台/生产SQL数据库是否设置在匹配的'兼容性级别',并且还需要确定是否需要在创建时添加任何种子或配置数据。
在SQL Server Management Studio中,选择适当的选项为所需表生成脚本。
您还可以使用此过程来导出和导入数据-这是配置或测试数据的理想选择。
https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server