Подтвердить что ты не робот

Первая миграция кода со строками подключения

Итак, мне удалось запустить Code First, и он отлично работает.

Поскольку я все еще разрабатываю приложение, структура базы данных не завершается, поэтому мне нужно выполнить миграцию.

Я последовал за Официальным сообщением в блоге и получил команду Update-Database.

Однако это только обновляет версию базы данных SQLExpress. Производственная версия базы данных находится на Azure, и я указываю строку подключения во время выполнения, поэтому команда Update-Database не работает над этим.

Итак, мой последний вопрос: как я могу применить автоматические миграции к производственной базе данных, строка соединения которой указана во время выполнения?

4b9b3361

Ответ 1

В консоли консоли диспетчера пакетов:

Get-Help Update-Database

Релевантная часть:

    Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [<Com
monParameters>]

Итак, вы можете сделать Update-Database -ConnectionStringName "MyConnectionString", и он должен работать как шарм.

У вас также есть инициализатор базы данных MigrateDatabaseToLatestVersion, если вы установите его (через Dabase.SetInitializer()), при развертывании вашего приложения на производстве с соответствующей строкой соединения, при доступе frist db он должен автоматически переносить ваш db на последнюю версию.

Я предлагаю осторожность, но всегда делаю резервные копии.

Update

@Последние комментарии Alexey Strakh породили еще один аргумент, заслуживающий ответа.

Правильная настройка системы развертывания с использованием First First Migrations, учитывая 2 ConnectionString s.

  • Определите свои строки подключения в web.config(prod и dev), с паролями по умолчанию
  • Узнайте конфигурационную систему вашего приложения о конфигурациях подключения prod и dev, произвольно создайте модульные тесты, чтобы убедиться, что выбран правильный. *
  • Используйте конфигурационное преобразование файла и преобразуйте его в web.config в файл с производственными значениями
  • Разверните свой пакет для производства (это должно быть самым передовым способом)

Вы не должны взаимодействовать с производственной средой из своего окна разработки, но если вам нужно действительно, то сделайте это временное решение, которое нужно вернуть, сделанный.

Другой вариант - просто использовать Web.Debug.config и Web.Release.config и иметь центральный шаблон для основного web.config(который будет единственным, который вы зарегистрируете в своем исходном элементе управления).

Просто убедитесь, что никогда не проверяйте производственные или персональные пароли (если любой).

* Вы можете использовать символ DEBUG, чтобы проверить, как работает приложение.

Ответ 2

Почему для шага Add-Migration миграции Entity Framework требуется строка подключения к базе данных?

Имеет решение, которое я считаю менее трудоемким в долгосрочной перспективе. Как будто вы создаете строку соединения с тем же именем

В вашем контексте : Основание ( "DBName" )

Имя строки подключения и начальный каталог соответствуют указанному вами имени DBN, и вам не нужно вводить имя строки подключения каждый раз.