【问题标题】:Make a backup before the database is dropped by DropCreateDatabaseIfModelChanges在 DropCreateDatabaseIfModelChanges 删除数据库之前进行备份
【发布时间】:2023-04-08 16:24:01
【问题描述】:

我们首先使用带有 DropCreateDatabaseIfModelChanges 种子模型的 ef 代码。

数据库没有很多敏感信息,丢掉也没关系。

但是,我们应该能够在删除旧版本之前对其进行备份。有可能吗?

【问题讨论】:

    标签: c# .net entity-framework-4 ef-code-first


    【解决方案1】:

    我们将在不久的将来实现接口IDatabaseInitializer<T>

    目前,我们正在使用这段代码(我知道这并不理想):

    Database.SetInitializer<OurdatabaseModel>(new OurdatabaseInitializer());
    _instance = new OurdatabaseModel();
    
    try
    {
        // force model creation
        _instance.Database.Initialize(false);
    }
    catch (InvalidOperationException)
    {
        if (_instance == null)
        {
            throw;
        }
    
        // database exists. Let's back it up.
        string dbPath = _instance.Database.Connection.Database.Replace("|DataDirectory|", Program.DataDirectory);
        File.Move(dbPath, dbPath + "." + DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss") + ".sdf");
    
        // and now the CreateDatabaseIfNotExists<T> will take care of the rest
        _instance = new OurdatabaseModel();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-22
      • 2012-07-21
      • 2018-08-20
      • 2022-12-17
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多