我正在考虑使用Entity Framework 6 Code First进行数据库交互,同时使用DbUp进行数据库模式更新。问题是,出于某些原因,我不想使用EF迁移。所以,我到达的工作流是:
POCO,更改属性等)Add-Migration temp_file中运行Visual Studio Package Manager ConsoleUpdate-Database -Script中运行Visual Studio Package Manager Consolesql脚本,包括在表__MigrationHistory中插入新行.sql文件并通过生成的脚本temp_file它在本地和生产服务器上都能很好地工作,但是每次生成新迁移时,添加并删除temp_file都会让我感到不舒服(我希望有一种方法可以永久地阻止temp_file添加到解决方案中)。
所以问题:是否有更好的方法使用DbUp使用Entity Framework进行数据库迁移?
发布于 2018-01-30 10:28:06
在大多数情况下,您可以通过使用自动代码第一步跳过步骤(2)和(6)
自动迁移允许您使用Code ,而无需在您的项目中为您所做的每个更改提供一个代码文件。
默认情况下,自动迁移是禁用的。您可以通过在db迁移配置类构造函数(通常称为Configuration,位于Migrations子文件夹下)中添加如下内容来启用它们:
AutomaticMigrationsEnabled = true;有些事情需要考虑:
发布于 2018-02-05 21:53:34
也许这个答案太迟了,但也许它也是有用的。我完全理解您使用实体框架作为ORM和模式迁移的不同工具的方法。但是选择DbUp需要手动编写SQL或像上面描述的那样生成它们。我建议考虑使用FluentMigrator而不是DbUp。它遵循同样的理念,但允许使用fluent语法在C#中编写迁移步骤。此外,它还支持降级,即回滚。
下面是一个示例:
[Migration(1)]
public class CreateUserTable : Migration
{
public override void Up()
{
Create.Table("Users");
}
public override void Down()
{
Delete.Table("Users");
}
}https://stackoverflow.com/questions/48482796
复制相似问题