ASP.NET Core MVC的生产数据库创建/迁移难题

问题描述 投票:0回答:1

自去年以来,我一直在构建ASP.NET Core MVC Web应用程序,由于数据库随着特性和功能的发展,我的项目中目前有100个迁移文件。我的开发/测试数据库显然与此迁移保持同步。

现在,创建生产环境的时间到了,我想拥有一个仅包含表模式的空数据库。因此,我只是无法复制测试数据库来创建生产数据库。

因此,关于创建此生产数据库的问题/困境如下;1.我可以通过运行Add-Migration命令(需要从项目中删除现有的迁移文件)来创建我的生产数据库,或者2.在SQL Management Server中创建表架构,并从测试数据库中保留__EFMigrationsHistory]

使用[1],我不确定如何继续使用同一项目管理测试数据库。对于[2],我不确定是否有任何缺点。

那么,生产部署的标准或最佳实践是什么?

asp.net-core-mvc ef-migrations dev-to-production
1个回答
0
投票
  1. 您当然可以使用Visual Studio创建或更新数据库表,但这通常只是在您的开发环境中。

[如果您担心所拥有的迁移数量,您仍然可以选择通过删除迁移(以及手动删除表和数据)并创建新的“初始创建”迁移来重新开始。如果执行此操作,则可能要先导出任何测试或配置数据(请参见下文)。

  1. 对于登台和生产部署,最好使用SQL Server Management Studio生成脚本来构建表。数据库管理员-或您(如果您只是您)-可以创建数据库并运行脚本来生成表。

这是因为过渡和生产环境往往比开发更受严格控制,因此最好了解最适合该环境的过程。

您需要检查您的开发和登台/生产SQL数据库是否设置在匹配的'兼容性级别',并且还需要确定是否需要在创建时添加任何种子或配置数据。

在SQL Server Management Studio中,选择适当的选项为所需表生成脚本。

https://docs.microsoft.com/en-us/sql/ssms/scripting/generate-scripts-sql-server-management-studio?view=sql-server-ver15

您还可以使用此过程来导出和导入数据-这是配置或测试数据的理想选择。

https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server

© www.soinside.com 2019 - 2024. All rights reserved.