Миграции не работают на хостинге
Я использую MigratorDotNet для управления миграциями в стиле Rails для моего веб-приложения. У меня есть рабочий процесс, где, если я удаляю все таблицы в базе данных, я могу получить доступ к представлению установки, которое запустит MigratorDotNet и создаст все необходимые таблицы.
Это работает локально. По какой-то причине, когда я загружаю свой код на свой хостинг Arvixe, миграции просто не запускаются. Я получаю эту странную ошибку:
There is already an object named 'SchemaInfo' in the database.
Это странно, потому что перед запуском миграций я вручную удалил все таблицы в базе данных (чтобы убедиться, что они не остались после предыдущей установки).
Мой код по сути сводится к:
new Migrator.Migrator("SqlServer", connectionString.ToString(), migrationsAssembly).MigrateToLastVersion();
Я уже проверил, зарегистрировав, что строка подключения верна (настройки производства / хостинга), и сборка загружена правильно (имя и версия).
Работает локально, но не на Arvixe. Как мне устранить это?
2 ответа
Это темный день.
Оказывается (странно), что основной причиной было то, что моя хостинговая компания использовала схему, отличную от dbo
для моей базы данных. Из-за этого появилось сообщение об ошибке (SchemaInfo already exists
) говорил о своем столе.
Моим решением, к сожалению, было вырвать MigratorDotNet и вместо этого использовать FluentMigator. это не только решило проблему, но и дало мне более понятное сообщение об ошибке (одно из которых относится к именам схем).
Хотя автоматическая настройка схемы не представляется возможной, и хотя мне нужно переключить схему на моем компьютере разработчика или на рабочей машине, это все еще решаемая проблема (и лучший API, IMO). Я погуглил, но не нашел способа изменить схему по умолчанию в migratordotnet.
Я прошу прощения за проблемы, которые у вас были. На общем хостинге, к сожалению, единственный способ, которым мы можем изменить схему, - это вручную. Если вы все еще ищете решение, которое требует нашей помощи, пожалуйста, отправьте ваш идентификатор билета на qa .at. arvixe.com, а также arvand .at. arvixe.com, и мы можем найти лучший способ решить эту проблему.