Как обновить базу данных 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
Это лучший / правильный способ отправить изменения БД в прод?