dotnet ef не уважает конфигурацию - PullRequest
0 голосов
/ 05 октября 2018

У меня есть две конфигурации: - Разработка - Производство

со следующими файлами настроек json: - appsettings.Production.json - appsettings.Development.json

В каждом файле настроек у меня есть следующие разделы:

(производство)

"Sql" : {
    "Name": "App_Prod",
    "Server": "127.0.0.1",
    "Port": 0,
    "Database": "db_prod",
    "Username": "user_prod",
    "Password": "secret"
   },

(разработка)

"Sql" : {
    "Name": "App_Dev",
    "Server": "127.0.0.1",
    "Port": 0,
    "Database": "db_dev",
    "Username": "user_dev",
    "Password": "secret"
   },

Я внедряю их в мой конструктор DbContext, и он работает правильно.Я обновил свою базу данных, используя систему миграции, используя следующую команду:

dotnet ef Обновление базы данных --context MyDbContext - Разработка конфигурации

это сработало, и моя схема базы данных была исправленаобновлено.

Но когда я пытаюсь обновить свою производственную базу данных, используя следующую команду:

dotnet ef обновление базы данных --context MyDbContext - конфигурация Производство

это дает мне информацию, что никакие миграции не нужно применять.

Я сбросил строку подключения в MyDbContext, и я вижу, что DbContext по-прежнему использует конфигурацию разработки, даже если я ввожу его в файл настроек производства.

Почему механизм миграции не соответствует моей конфигурации?Как я могу запустить dotnet ef с appsettings.Production?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

В моем случае (среда Linux) используется:

export ASPNETCORE_ENVVIRONMENT = Development

изменяет среду, используемую командой обновления базы данных

0 голосов
/ 06 октября 2018

--configuration для конфигурации сборки (например, Release, Debug)

Pre-v2.0:

Использование -e или --environment:

PM> Обновление базы данных dotnet ef --context MyDbContext -e Production

v2.0 +:

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

PM> $ env: ASPNETCORE_ENVIRONMENT = 'Production'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...