如何确定新类未运行的原因

时间:2013-06-20 20:53:29

标签: fluent-migrator

背景:VS 2012

我们已将表格迁移拆分为单独的类,因此我们有

第1课,

[Migration(1306122)]
class M1306122CreateTableX: Migration
{...}

第2课,

[Migration(1306123)]
class M1306123CreateTableY: Migration
{...}

等。 我创建了一个新类,增加了迁移数,使用(似乎是完全有效的代码)迁移过程只是不运行新类。没有任何错误或任何错误。它只是没有运行。

现在我们正在使用批处理文件来运行迁移。

migrate.exe ^
 /connection "Server=(local)\SQLEXPRESS; Database=%2_Aggregated; Integrated Security=True" ^
 /db SqlServer2012 ^
 /target %1 ^
 /namespace DatabaseMigrations.Aggregated ^
 /nested

是否有某种方法可以调试以找出未包含新类的原因?

2 个答案:

答案 0 :(得分:3)

您的迁移需要是公共课程。

答案 1 :(得分:0)

根据我的经验,这几乎总是与迁移ID不正确(数量)的迁移有关。只会执行编号大于上次运行迁移的迁移。

例如,如果我之前已经执行了id(number)3的迁移,然后编写了一个id为2的新迁移,那么当我尝试执行新的迁移时,它将被跳过,因为只迁移并且id大于3被认为是。

您可以通过查看数据库中的VersionInfo表来检查这一点,如果Version列中的最大数字大于1306122或1306123,那么您就发现了问题。