2

我正在尝试使用实体框架和代码优先迁移来更新开发服务器上的数据库(在我的本地机器上一切正常)。我使用该命令update-database -Script -SourceMigration:201305161422570_AddedWidgets生成了必要的脚本。当我在服务器上的 SQL Management Studio (2008R2) 中运行此脚本时,每次脚本尝试写入 __MigrationHistory 表时都会收到错误消息。确切的错误是:

Cannot insert the value NULL into column 'CreatedOn', table 'master.dbo.__MigrationHistory'; column does not allow nulls. INSERT fails.

我以前从未遇到过这个错误,但我觉得这很奇怪,因为我的 __MigrationHistory 表没有 column CreatedOn,我也没有尝试将任何内容放入名为该列的列中。这是我的插入语句之一:

INSERT INTO [__MigrationHistory] ([MigrationId], [Model], [ProductVersion]) VALUES ('201306031825584_AddedTitleToSocialLevel', 0x1F8B0800000000000400EDBDDD92...0, '5.0.0.net45')

我不知道从这里去哪里,有人有什么建议吗?

4

2 回答 2

1

该错误肯定是抱怨在数据库“master”中有一个表“__MigrationHistory”,该表肯定有一个不可为空的列“CreatedOn”,当您插入该行时未设置该列。您应该仔细检查开发服务器数据库的架构。

于 2013-06-07T12:53:42.957 回答
0

回顾错误和来自 wagregg 的建议,我意识到生成的脚本正在寻找我的 __MigrationHistory 表master.dbo.MigrationHistory,但实际上并不是它所在的位置。

我将这些引用中的每一个都从[__MigrationHistory]to更改为[EnterpriseWebDB].[dbo].[__MigrationHistory]它解决了问题。

于 2013-06-07T13:04:37.393 回答