Применение миграции EF7 в Azure

Как применить миграции EF7 к базе данных Azure?

Согласно по этой ссылке, вы просто ставите галочку в настройках публикации профиля. Ну, у меня нет этого флажка - я не уверен, изменилась ли конфигурация профиля с тех пор, но у меня даже нет раздела databases.

Согласно эта ссылка, EF7 не поддерживает инициализаторы базы данных, и вам необходимо использовать диспетчер пакетов nuget или миграцию k (dnx). Я не уверен насчет варианта nuget, поэтому использую вариант dnx: как мне подключиться к моему (размещенному) проекту/веб-сайту Azure с помощью окна консоли dnx или консоли диспетчера пакетов в VS?

Есть ли другие варианты (надеюсь, проще!) для этого?


person Sean    schedule 16.08.2015    source источник


Ответы (2)


Вот "новый" способ:

_context.Database.EnsureCreated();
_context.Database.Migrate();

Простой.

В моей базе данных Azure каким-то образом были применены некоторые миграции, но ничего не было в таблице __EFMigrationsHistory, поэтому я удалил все остальные таблицы, а затем запустил все миграции, чтобы вернуть ее туда, где я хотел.

person Sean    schedule 21.01.2016
comment
Где ты это делаешь? У меня есть что-то подобное в моем инициализаторе dbcontext, но это означает, что миграция начинает выдавать ошибки при запуске, даже если нет новых миграций для добавления. Итак, я нахожусь в печальном процессе добавления Database.Migrate(), когда хочу выполнить миграцию, запускаю запрос один раз, чтобы произошел вызов, затем удаляю строку и перестраиваю... - person James; 27.04.2016
comment
Не используйте EnsureCreated(). Используйте только Migrate(), он создаст базу данных, если она не существует. См. _3 документы на _3 /а> - person Alaa Masoud; 27.11.2016

Мне удалось применить миграции, изменив строку подключения в моем локальном проекте, открыв брандмауэр в Azure для моего IP-адреса и выполнив команду dnx . ef migration apply.

Однако это не кажется мне хорошим решением: теперь мне нужно хранить строку живого подключения в моем проекте разработки и продолжать переключаться между ними. Должен быть лучший способ...?

person Sean    schedule 17.08.2015
comment
У меня была та же проблема, и я решил ее таким же образом, изменяя строку подключения к Azure DB каждый раз, когда я хочу применить миграцию. Другой способ — позволить приложению автоматически применять миграцию при запуске. Фрагмент кода здесь: stackoverflow.com/a/28504178/19712 - person gius; 06.01.2016