14

我想我应该在开始我的项目之前想到这一点,但我已经成功地使用代码优先方法构建并测试了一个迷你应用程序,并且我准备将其部署到生产Web服务器。部署实体框架代码首先

我已将该文件夹移至我的登台服务器,并且一切正常。我只是好奇,是否有一个建议的部署策略?

如果我进行了更改,我不想,如果重新启动应用程序失去所有数据的应用程序。

如果我只是生成的代码,第一个项目数据库脚本,然后将其移动到我的服务器呀?

任何提示和指导链接将是有用的。

谢谢。

回答

5

其实数据库初始化仅供发展。将这些代码部署到生产环境是解决问题的最佳途径。 Code-first目前没有任何数据库演变的方法,所以你必须在新版本之后手动将更改脚本构建到数据库。最简单的方法是在VS Studio 2010 Premium和Ultimate中使用数据库工具。如果您将拥有一个包含旧架构的数据库和一个包含新架构的数据库,并且VS将为您准备更改脚本。

+4

请原谅我的无知。但是,您能概述我将这个项目移到我的生产服务器上的步骤吗? – KidCoke 2011-04-07 17:50:53

+1

我也想更多的信息,@Ladislav – billy 2011-05-18 18:14:02

+0

我也想更多的信息!在本地有限制,例如4k字符串限制(我需要max用于生产)...所以,我如何创建/获取最终模式? – wil 2011-10-07 21:55:53

1

以下是我遵循的步骤。

  1. 评论了我使用的初始化策略。
  2. 除了EdmMetadata表并在Web服务器上运行它们之外,还为所有表的Schema +数据生成数据库脚本。 (当然,如果它是一个生产服务器,BE CAREFUL这个步骤。在我的情况下,在开发过程中,在生产和开发中的数据是相同的。)
  3. 提交我的解决办法,以颠覆然后触发TeamCity的构建,测试,并部署到Web服务器(当然,您将拥有自己的这一步的方法,但以某种方式将该网站部署到Web服务器)。
  4. 你们都完成了!需要仅用于开发

初始化和EdmMetadata表。

+0

是的,这实质上是手动完成Visual Studio数据库项目为您自动执行的方法。 http://kingdango.com/blog/2011/12/a-simple-solution-for-de-loying-code-first-model/ – kingdango 2011-12-07 04:16:03

+2

注意:您可以使用预处理器指令自动删除SetInitializer http://msdn.microsoft .COM/EN-US /库/ 4y6tbswk.aspx – 2012-02-03 17:09:22