迁移不会在托管上运行

时间:2013-04-23 11:37:55

标签: asp.net-mvc-4 shared-hosting migratordotnet

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

这适用于本地。出于某种原因,当我将代码上传到我的Arvixe托管时,迁移从未运行过。我得到了这个奇怪的错误:

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

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

我的代码基本归结为:

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

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

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

2 个答案:

答案 0 :(得分:0)

这是一个黑暗的日子。

事实证明(根本原因)根本原因是我的托管公司为我的数据库使用了dbo以外的模式。因此,我看到了错误消息({{ 1}})正在谈论他们的表。

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

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

答案 1 :(得分:0)

我很抱歉你遇到的问题。在共享主机上,遗憾的是我们可以手动更改架构的唯一方法。如果您仍在寻找需要我们帮助的解决方案,请将您的机票ID转发至qa .at。 arvixe.com以及arvand .at。 arvixe.com,我们可以研究解决这个问题的最佳方法。