背景: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
是否有某种方法可以调试以找出未包含新类的原因?
答案 0 :(得分:3)
您的迁移需要是公共课程。
答案 1 :(得分:0)
根据我的经验,这几乎总是与迁移ID不正确(数量)的迁移有关。只会执行编号大于上次运行迁移的迁移。
例如,如果我之前已经执行了id(number)3的迁移,然后编写了一个id为2的新迁移,那么当我尝试执行新的迁移时,它将被跳过,因为只迁移并且id大于3被认为是。
您可以通过查看数据库中的VersionInfo表来检查这一点,如果Version列中的最大数字大于1306122或1306123,那么您就发现了问题。