Как обновить базу данных prod с помощью команды dotnet ef database cli?

Как мне заставить EF построить все таблицы для prod db?

До сих пор я создавал и отправлял все свои миграции базы данных.Net Core на dev db

напр.

> миграции dotnet ef добавить InitialModsN -c Auto2Context

> Обновление базы данных dotnet ef -c Auto2Context

В моем файле Appsettings.Development.json у меня есть строка con, указывающая на dev db 'source=DEV'

"ConnectionStrings": {
"DefaultConnection": "Data Source=Auto2.db",
"Auto2": "data source=DEV; initial catalog=Auto2; user id=auto2; password=12345;" }

И мой Appsettings.json у меня есть строка prod db con, указывающая на prod db 'source=LIVE'

"ConnectionStrings": {
"DefaultConnection": "Data Source=Auto2.db",
"Auto2": "data source=LIVE; initial catalog=Auto2; user id=auto2; password=12345;" }

Пока что все создается и переносится на dev, как мне изменить это, чтобы все изменения были обновлены в базе данных prod?

Нужно ли мне заново создавать файл первоначальной миграции, а затем обновлять? Если да, как мне указать на prod db? Я безуспешно пробовал несколько разных команд. Вот что я пробовал.

> Обновление базы данных dotnet ef -c Auto2Context --connection "источник данных =LIVE; исходный каталог =Auto2; идентификатор пользователя =auto2; пароль =12345"

-получено 'Нераспознанная опция'--соединение ''

> Обновление базы данных dotnet ef -c Auto2Context --configuration Release

  • таблицы не созданы в базе данных продукта

2 ответа

Задавать ASPNETCORE_ENVIRONMENT переменная окружения перед выполнением команды:

$env:ASPNETCORE_ENVIRONMENT='Production'

Вот что я использовал, и, похоже, это работает.

dotnet publish --configuration Release /p:EnvironmentName=Production

но это только создает приложение. Мне пришлось запустить эту команду ниже, чтобы создать sql-скрипт для обновления prod db.

сценарий миграции dotnet ef -i -o "buildscript.sql" -c Auto2Context

Это лучший / правильный способ отправить изменения БД в прод?

Другие вопросы по тегам