1

背景: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

有什么方法可以调试来找出为什么不包含新类?

4

2 回答 2

3

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

于 2013-06-24T22:10:47.603 回答
0

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

例如,如果我之前执行了 id (number) 3 的迁移,然后编写了一个 id 为 2 的新迁移,当我尝试执行我的新迁移时,它将被跳过,因为只考虑 id 大于 3 的迁移.

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

于 2013-06-24T15:37:39.710 回答