В настоящее время я изменяю нашу стратегию развертывания базы данных для использования FluentMigration и читаю о том, как ее запустить. Некоторые люди полагают, что он может быть запущен из Application_Start, мне нравится эта идея, но другие люди говорят, нет, но без указания причин, так что мои вопросы:FluentMigrator Migration From Application_Start
- Это плохая идея, чтобы запустить миграцию базы данных при запуске приложения и если да, то почему?
- Мы планируем перенести наши сайты на развертывание на облачные сервисы, а если мы не выполним миграцию из application_start, как это сделать/когда мы должны запускать его, учитывая, что мы хотим сделать развертывание максимально простым.
- Где бы он ни работал, как мы гарантируем, что он работает только один раз, так как у нас будет сайт и несколько рабочих ролей (хотя мы могли бы просто обеспечить, чтобы код миграции вызывается только с веб-сайта, но в будущем мы можем увеличение до 2 или более экземпляров, будет ли это означать, что он может работать более одного раза?)
Я хотел бы получить любое представление о том, как другие обрабатывают миграцию базы данных во время развертывания, особенно с точки зрения развертывания на лазурный облачных сервисов.
EDIT:
Глядя на комментарии ниже я могу увидеть потенциальные проблемы во время работы Application_Start, возможно, проблема, я пытаюсь решить проблему с неправильным инструментом, если FluentMigrator не способ идти, и это может быть не в нашем случае, так как у нас есть большое количество хранимых процедур, представлений и т. д., так как часть миграции я должен был использовать SQL-скрипты, чтобы держать их в правильной версии и мигрировать вниз Думаю, это возможно.
Что мне понравилось в идее запуска во время Application_Start, было то, что я мог бы создать единый пакет развертывания для Azure и просто загрузить его в стадию, и миграция базы данных будет запущена, и это было бы, скорее, спасибо за запуск ручных скриптов, а затем просто поменяться на производство.
Благодарим вас за ответ. Я вижу, что вы пытаетесь запустить каждый раз, когда пул приложений перерабатывается, но я думаю, что если миграция уже запущена, он ничего не будет запускать, хотя все равно будет работать. Возможно, FluentMigrator - это не путь. В настоящее время развертывание для нас означает использование VS Database Project для создания сценариев, их запуска вручную, а затем копирования сайта, и я должен сделать это для каждого клиента, пытаясь найти способ сделать его одним пакетом развертывания для Azure или самостоятельный IIS. – user351711
Я пристрастен к FluentMigrator, но я бы не рекомендовал VS Database Project. Я знаю нескольких людей, использующих подход Application_Start, поэтому, если он работает в вашем контексте, используйте его. Просто знай о подводных камнях. –
Я не использовал Azure много, но использование скрипта сборки - обычный подход для развертывания в Azure. Я думаю, что почти все возможно автоматизировать с помощью PowerShell (настройка тестовых сред и т. Д.). Вот вступление: http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/automate-everything –