0

我正在使用 MigratorDotNet 来管理我的 Web 应用程序的 Rails 样式迁移。我有一个工作流程,如果我删除数据库中的所有表,我可以访问一个安装视图,该视图将运行 MigratorDotNet 并创建所有必要的表。

这在本地有效。出于某种原因,当我将代码上传到我的 Arvixe 主机时,迁移永远不会运行。我收到这个奇怪的错误:

There is already an object named 'SchemaInfo' in the database.

这很奇怪,因为在运行迁移之前,我手动删除了数据库中的所有表(以确保它没有从以前的安装中遗留下来)。

我的代码基本上归结为:

new Migrator.Migrator("SqlServer", connectionString.ToString(), migrationsAssembly).MigrateToLastVersion();

我已经通过记录连接字符串是否正确(生产/托管设置)来验证,并且程序集已正确加载(名称和版本)。

在本地工作,但不在 Arvixe 上。我该如何解决这个问题?

4

2 回答 2

0

对于您遇到的问题,我深表歉意。在共享主机上,不幸的是,我们可能能够更改架构的唯一方法是手动。如果您仍在寻找需要我们帮助的解决方案,请将您的票证 ID 转发至 qa .at。arvixe.com 以及 arvand .at。arvixe.com,我们可以研究解决此问题的最佳方法。

于 2013-05-01T07:04:30.660 回答
0

这是黑暗的一天。

事实证明(奇怪的是)根本原因是我的托管公司使用了我的数据库以外的模式。dbo因此,我看到的错误消息 ( SchemaInfo already exists) 是在谈论他们的桌子。

不幸的是,我的解决方案是淘汰 MigratorDotNet 并改用 FluentMigator这不仅解决了问题,而且还给了我一个更容易理解的错误消息(一个指的是模式名称)。

虽然似乎无法自动设置架构,而且我需要在开发机器和生产机器上切换架构,但它仍然是一个可以解决的问题(以及更好的 API,IMO)。我用谷歌搜索,但没有找到任何方法来更改 migratordotnet 中的默认架构。

于 2013-04-24T14:15:06.900 回答