我正在通过弹性beanstalk发布将我的web api项目推送到AWS。我想将它用于演示环境。
目前,我已将其设置为两个单独的部署:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base(Helpers.GetRDSConnectionString(), throwIfV1Schema: false)
{
// THIS DEPLOY IS USED TO DELETE THE CURRENT DATABASE
//SqlConnection.ClearAllPools();
//Database.SetInitializer<ApplicationDbContext>(new
DropCreateDatabaseAlways<ApplicationDbContext>());
// THIS DEPLOY IS USED TO SEED THE DATABASE
System.Data.Entity.Database.SetInitializer(new
MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
}
但是,只要应用程序池再次唤醒,数据库就会尝试播种。这是在app.start中的某个地方我可以放置这个逻辑,以便它只在最初部署应用程序时尝试重新创建数据库。
答案 0 :(得分:1)
是的,您可以使用在应用程序生命周期内只调用一次的Application_Start
。
示例强>
protected void Application_Start()
{
Database.SetInitializer<SomeContext>(new DropCreateDatabaseIfModelChanges());
}