ASP.NET 核心 MVC 的生产数据库创建/迁移困境
Production Database Creation / Migration dilemma for ASP.NET Core MVC
自去年以来,我一直在构建我的 ASP.NET 核心 MVC Web 应用程序,目前我的项目中有 100 个迁移文件,因为数据库随着特性和功能的发展而发展。我的开发/测试数据库显然与此迁移同步。
现在是创建生产环境的时候了,我想要一个只有 table 架构的空数据库。所以,我无法复制我的测试数据库来创建生产数据库。
因此,关于创建此生产数据库,我遇到的问题/困境如下;
1. 我可以通过 运行 Add-Migration 命令创建我的生产数据库(为此我需要从项目中删除现有的迁移文件),或者
2. 在 SQL 管理服务器中创建 table 模式,并保留来自测试数据库
的 __EFMigrationsHistory
对于 [1],我不确定今后我将如何使用同一个项目管理我的测试数据库。
有了[2],不知道有没有缺点
那么,生产部署的标准或最佳实践是什么?
- 您当然可以使用 Visual Studio 来创建或更新数据库表,但这通常只在您的开发环境中进行。
如果您担心自己的迁移数量,您仍然可以选择通过删除它们重新开始,并删除您的迁移历史记录(并手动删除您的表和数据)并创建一个新的 'Initial create' 迁移。如果您这样做,您可能需要先导出任何测试或配置数据,或者确保您有办法重新创建它。
- 对于暂存和生产部署,最好使用 SQL Server Management Studio 生成脚本来构建您的表。数据库管理员 - 或者您,如果只是您 - 可以创建数据库和 运行 生成表的脚本。
这是因为暂存和生产环境往往比开发受到更严格的控制,因此最好了解最适合该环境的流程。
您需要检查您的开发和 staging/production SQL 数据库设置是否匹配 'compatibility level',并且还需要决定是否需要添加任何种子或配置数据关于创建。
在SQL Server Management Studio 中,select 适当的选项可以为所需的表生成脚本。
您还可以使用此过程导出和导入数据 - 这非常适合配置或测试数据。
https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server
自去年以来,我一直在构建我的 ASP.NET 核心 MVC Web 应用程序,目前我的项目中有 100 个迁移文件,因为数据库随着特性和功能的发展而发展。我的开发/测试数据库显然与此迁移同步。
现在是创建生产环境的时候了,我想要一个只有 table 架构的空数据库。所以,我无法复制我的测试数据库来创建生产数据库。
因此,关于创建此生产数据库,我遇到的问题/困境如下; 1. 我可以通过 运行 Add-Migration 命令创建我的生产数据库(为此我需要从项目中删除现有的迁移文件),或者 2. 在 SQL 管理服务器中创建 table 模式,并保留来自测试数据库
的 __EFMigrationsHistory对于 [1],我不确定今后我将如何使用同一个项目管理我的测试数据库。 有了[2],不知道有没有缺点
那么,生产部署的标准或最佳实践是什么?
- 您当然可以使用 Visual Studio 来创建或更新数据库表,但这通常只在您的开发环境中进行。
如果您担心自己的迁移数量,您仍然可以选择通过删除它们重新开始,并删除您的迁移历史记录(并手动删除您的表和数据)并创建一个新的 'Initial create' 迁移。如果您这样做,您可能需要先导出任何测试或配置数据,或者确保您有办法重新创建它。
- 对于暂存和生产部署,最好使用 SQL Server Management Studio 生成脚本来构建您的表。数据库管理员 - 或者您,如果只是您 - 可以创建数据库和 运行 生成表的脚本。
这是因为暂存和生产环境往往比开发受到更严格的控制,因此最好了解最适合该环境的流程。
您需要检查您的开发和 staging/production SQL 数据库设置是否匹配 'compatibility level',并且还需要决定是否需要添加任何种子或配置数据关于创建。
在SQL Server Management Studio 中,select 适当的选项可以为所需的表生成脚本。
您还可以使用此过程导出和导入数据 - 这非常适合配置或测试数据。
https://dzone.com/articles/generate-database-scripts-with-data-in-sql-server