C# MySql数据库中实体框架代码的首次迁移

C# MySql数据库中实体框架代码的首次迁移,c#,mysql,entity-framework,migration,entity-framework-6,C#,Mysql,Entity Framework,Migration,Entity Framework 6,我使用实体框架创建代码优先模型,在将第一个版本安装到客户端后,我们发现数据库列中有一些更改,我使用实体框架迁移,您应用迁移的所有步骤,但客户端数据库不存在上次更改的迁移历史行,如果执行,则显示此消息 Table 'nameTable' already exists 或 这是类配置的代码 internal sealed class Configuration : DbMigrationsConfiguration<GSM.DataAccess.GSMContext> { p

我使用实体框架创建代码优先模型,在将第一个版本安装到客户端后,我们发现数据库列中有一些更改,我使用实体框架迁移,您应用迁移的所有步骤,但客户端数据库不存在上次更改的迁移历史行,如果执行,则显示此消息

Table 'nameTable' already exists

这是类配置的代码

 internal sealed class Configuration : DbMigrationsConfiguration<GSM.DataAccess.GSMContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = false;
        SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());  
    }

    protected override void Seed(GSM.DataAccess.GSMContext context)
    {

    }
}

至于当前的问题,看起来客户端迁移快照不同步。您可以在Up()方法中注释掉冲突的代码,然后更新数据库以使它们恢复同步。如果担心缺少更改,则需要使用架构比较工具()

我会重新考虑您更新客户(生产)数据库的策略。我们要做的是从迁移中生成一个脚本,该脚本在客户端站点上运行以更新它们。见:

您还必须考虑数据库初始化器是什么,并将其设置为NULL或Exchange TATEOLATESTVIEW进行部署。< /P>
 internal sealed class Configuration : DbMigrationsConfiguration<GSM.DataAccess.GSMContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = false;
        SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());  
    }

    protected override void Seed(GSM.DataAccess.GSMContext context)
    {

    }
}
public partial class AddMoreInformationColumn : DbMigration
{
    public override void Up()
    {

            AddColumn("dbo.People", "Reference", c => c.String(unicode: false));
            AddColumn("dbo.Products", "Reference", c => c.String(unicode: false));
            AddColumn("dbo.Products", "SalePrice", c => c.String(unicode: false));
            AddColumn("dbo.Products", "WholePrice", c => c.String(unicode: false));


    }

    public override void Down()
    {

            DropColumn("dbo.People", "Address");
            DropColumn("dbo.People", "Reference");
            DropColumn("dbo.Products", "Reference");
            DropColumn("dbo.Products", "SalePrice");
            DropColumn("dbo.Products", "WholePrice");

    }
}