标签: fluent-migrator

我可以使用FluentMigrator创建一个nvarchar(MAX)列吗?

使用FluentMigrator,默认创建Column使用.AsString()结果nvarchar(255).有一种简单的方法(在我修改FluentMigrator代码之前)创建一个类型的列nvarchar(MAX)吗?

fluent-migrator

53
推荐指数
4
解决办法
1万
查看次数

是否可以在application_start中使用流畅的迁移器?

我正在使用流畅的迁移器来管理我的数据库迁移,但我想要做的是让迁移在应用程序启动时运行.我管理的最接近的是:

public static void MigrateToLatest(string connectionString)
{
    using (var announcer = new TextWriterAnnouncer(Console.Out)
                                {
                                    ShowElapsedTime = true,
                                    ShowSql = true
                                })
    {
        var assembly = typeof(Runner).Assembly.GetName().Name;

        var migrationContext = new RunnerContext(announcer)
        {
            Connection = connectionString,
            Database = "SqlServer2008",
            Target = assembly
        };

        var executor = new TaskExecutor(migrationContext);
        executor.Execute();
    }
}
Run Code Online (Sandbox Code Playgroud)

我确定我有这个工作,但我有时候没看过它(业余爱好项目),它现在在它到达Execute线时抛出空引用异常.可悲的是,没有这方面的文档,而且我多年来一直在敲打它.

有没有人设法让这种东西与FluentMigrator合作?

.net c# fluent-migrator asp.net-mvc-3

48
推荐指数
2
解决办法
1万
查看次数

从代码执行FluentMigrator迁移

是否有任何教程或示例代码用于FluentMigrator从代码中执行迁移?一些"入门......"教程会很棒.所有我能找到的都是FluentMigrator.Tests(单元测试),内部FluentMigrator源代码,没有"入门......"那样有用.

我只想在项目中添加几个类,并从项目运行迁移,无需外部工具.是否可以在Fluent Migrator中使用?就像是

FluentMigrator.Migrate("database path", typeof(Migration024));
Run Code Online (Sandbox Code Playgroud)

我打电话给Program.Main()谁?

.net c# migration data-migration fluent-migrator

24
推荐指数
4
解决办法
2万
查看次数

如何使用FluentMigrator删除列?

我使用.Net4.5C#,我工作的数据库迁移的一个使用FluentMigrator.我可以使用更改表和添加列

Alter.Table("Items").InSchema("Pricing")
            .AddColumn("CanBe").AsBoolean().NotNullable()
Run Code Online (Sandbox Code Playgroud)

但是我需要删除一些现有的列,并且DeleteColumn也不DropColumnIAlterTableAddColumnOrAlterColumnOrSchemaSyntax接口上也没有方法.

如何使用FluentMigrator删除列?

c# migration fluent-migrator .net-4.5

19
推荐指数
1
解决办法
6422
查看次数

流利的移民.如何使用默认值作为当前日期添加datetime列?

如何使用当前日期时间的默认日期时间值更改流畅迁移中的列?

所以我需要这样的smth:

ALTER TABLE database ADD column DATETIME DEFAULT GETDATE() NOT NULL;

仅适用于流利的迁移.谢谢.

fluent-migrator

16
推荐指数
2
解决办法
6156
查看次数

基于EntityFramework代码的迁移,如何确定顺序?

我正在使用EF 5.0,我想开始使用基于代码的迁移

我使用了流畅的迁移器,并且有一个迁移顺序的概念.无论数据库的迁移版本如何,都可以迁移/回滚迁移.

Entity Framework是否具有类似的功能?

我计划为每个数据库版本保留多个迁移实现(可能首先与sprint数量相关).

我为什么要这个?

我们的持续集成将为每个环境迁移数据库.我们的Dev版本可能只是一个版本"落后"但是当我们进入QA或PROD环境时,数据库将落后于多次迁移.

也许我会以错误的方式解决这个问题,在这种情况下,我希望听到有关使用CI进行迁移的最佳方式的意见.

entity-framework fluent-migrator ef-migrations

12
推荐指数
1
解决办法
5354
查看次数

FluentMigrator回滚到Not Nullable列?

鉴于以下迁移:

[Migration(1)]
public class Mig001 : Migration
{
    public override void Up()
    {
        Alter.Table("foo").AlterColumn("bar").AsInt32().Nullable();
    }

    public override void Down()
    {
        Alter.Table("foo").AlterColumn("bar").AsInt32().NotNullable();
    }
}
Run Code Online (Sandbox Code Playgroud)

迁移器更改列并使其可为空,并且在回滚时它会执行相反操作并使其不再可为空.

让我们说foo自迁移以来已经添加了数据; 现在列中有null的bar行.

如果它被回滚然后操作将失败,在fluentmigrator中是否有办法处理这种情况?或者什么是最佳实践.

c# nullable rollback fluent-migrator

12
推荐指数
2
解决办法
5012
查看次数

将FluentMigrator与现有数据库一起使用

我正在寻找一个迁移框架,该框架将与使用.NetTiers的现有项目一起使用.NetTiers是一个需要CodeSmith生成数据访问代码的旧ORM.

我们有圆屋的经验,我们已成功使用它.在从Octopus Deploy运行部署时,我们还能够自动部署架构更改.相当简单,因为它只是SQL脚本的集合.

我有兴趣转到FluentMigrator.我喜欢FM DSL而且我发现这个SO问题非常有用,但是有一些我不理解的事情:

  1. 导入现有数据库模式[*]的正确方法是什么?
  2. 将迁移部署到生产环境的正确方法是什么[**]?

[*]我的假设是我使用SQL Server工具生成单个脚本,并使用ExecuteEmbeddedSql作为初始迁移.那是对的吗?

[**]似乎有三种主要方式来运行迁移(Command Line,NAnt runner,MSBuild runner).他们需要访问数据库才能运行.想象一下,我们希望将其部署到PROD环境中.开发人员和构建服务器无法访问此环境.你如何针对那种环境运行这些跑步者?

我们通常的部署过程是生成需要作为部署的一部分进行部署的SQL脚本集合.Ops作为部署的一部分运行它们,或者作为Octopus Deploy流程(powershell)的一部分自动运行,或者如果部署在Octopus之外,则手动运行.

我们在这个特定项目中遇到的一个复杂问题是.NetTiers.这意味着我们必须使用.NetTiers运行CodeSmith代码生成,才能构建数据访问层,然后才能对这些实体和数据服务进行编码.因此,我们的工作流程必须是:

  1. 写迁移
  2. 运行迁移到升级数据库(定位到特定的.NetTiers数据库)
  3. 针对特定的.NetTiers数据库(中央构建服务器)运行.NetTiers
  4. 针对新.NetTiers生成的实体,数据库字段等的代码

我很想抛弃.NetTiers,但遗憾的是,重构不是一个可行的选择.

.net .nettiers fluent-migrator

12
推荐指数
1
解决办法
4863
查看次数

使用Create.Table,FluentMigrator时,将Constraint添加到Table列

我正在使用FluentMigrator在DB中创建一个新表.在我创建之后,我意识到我需要在T-Sql中添加如下的约束:

假设我已经有一个表tableA

      Alter Table tableA
      Add Constraint ConstraintA CHECK(([ColA]>=(0) AND [ColA]<(100)))
Run Code Online (Sandbox Code Playgroud)

如何在.Net中使用FluentMigrator创建约束?我用谷歌搜索,没有找到任何答案.谢谢!

c# t-sql fluent-migrator

11
推荐指数
2
解决办法
4658
查看次数

实体框架迁移可以做什么,FluentMigrator不能做到?

我目前有几个数据库使用FluentMigrator,我很想知道实体框架迁移的比较.

EF迁移可以在迁移中播种数据,并根据FluentMigrator等环境选择性地运行迁移脚本吗?

我已经在使用EF Database First作为我的应用程序的ORM了,我想我现在也读到了非Code First EF支持EF迁移的地方,但我的团队一直在考虑重构Code First方法,因为数据库优先方法的一些限制.那么EF Migrations在使用代码优先方法时,是否更有意义使用而不是拥有另一个第三方迁移框架?

.net asp.net-mvc entity-framework fluent-migrator ef-code-first

10
推荐指数
1
解决办法
3211
查看次数