Asp.net 使用EF 4.1部署数据库更改
是否有人在EF 4.1代码优先解决方案中部署数据库更改方面有任何最佳实践?我知道MS目前不支持EF 4.1的数据库迁移,但显然人们需要不时地这样做Asp.net 使用EF 4.1部署数据库更改,asp.net,entity-framework-4,code-first,entity-framework-4.1,Asp.net,Entity Framework 4,Code First,Entity Framework 4.1,是否有人在EF 4.1代码优先解决方案中部署数据库更改方面有任何最佳实践?我知道MS目前不支持EF 4.1的数据库迁移,但显然人们需要不时地这样做 谢谢一旦将数据库部署到生产环境中,就必须进行增量更改。这意味着在部署下一个版本之前,您必须在dev box中准备两个数据库: 当前已在生产中部署数据库模式的数据库-您应该能够从源代码管理中获取此数据库,以便始终正确标记生产版本 具有新数据库模式的数据库 一旦有了两个数据库,您就可以使用一些工具来为您改变SQL脚本。我在这两方面都有经验:
谢谢一旦将数据库部署到生产环境中,就必须进行增量更改。这意味着在部署下一个版本之前,您必须在dev box中准备两个数据库:
- 当前已在生产中部署数据库模式的数据库-您应该能够从源代码管理中获取此数据库,以便始终正确标记生产版本
- 具有新数据库模式的数据库
在此之后,您可以计划生产应用程序的中断,数据库备份并运行升级脚本。尝试-您需要手动创建步骤,但该工具是免费的,非常有效(至少)你会理解数据库模型的变化。ApexSQL还有一些处理SQL Server和模式/数据差异的非常好的工具-比VS DB工具(我发现它只适合一次性生成,不适合进行大规模重构的持续开发)好得多,比Red Gate便宜一点;虽然我没有广泛使用RedGate,所以无法比较这两种方法。对于代码优先,迁移电源包(我相信是在这个老问题之后引入的)工作得很好-我仍然会采取适当的差异方法,但代码优先迁移甚至可以与SQL数据库(又名Azure SQL)一起工作,这就是我使用它的原因。