我刚刚开始学习.NET MVC,这可能是一个愚蠢的问题,但我还没有找到一个很好的答案.
我遵循使用实体框架的Code First方法为我构建我的数据库.我已经在我的Application_Start()方法中包含以下内容,以便允许我通过更改我的Model对象来编辑我的数据库.
Database.SetInitializer<ContactManagerDB>(new DropCreateDatabaseIfModelChanges<ContactManagerDB>());
我只是想知道如果将此应用程序推送到生产环境,然后对我的模型进行了一些更改,然后更新应用程序会发生什么?这真的会在生产环境中丢弃并重新创建数据库吗?
推动生产环境变化的最佳做法是什么?使用Code First方法?
解决方法
DropCreateDatabaseIfModelChanges应该只在开发早期使用,从不在生产机器上使用.如果您推送到生产机器并进行架构更改,则会丢失所有数据.