Loopback4: переключение между средами разработки и производства - PullRequest
1 голос
/ 20 марта 2019

Проще говоря, как мне реализовать переключение между dev и prod в приложении lp4.

У меня добавлен источник данных, и все работает нормально, но это файл .json.Как я могу переключиться на другую конфигурацию, сохраненную в файле .env, который можно прочитать через пакет dotenv.

Я пытался создать объект источника данных вручную, но я получаю ошибки, так что, скорее всего, мой подход неправильный.Любое предложение будет оценено.

1 Ответ

2 голосов
/ 22 марта 2019

Привет от команды LoopBack ?

LoopBack не поддерживает dotenv "из коробки".

Если вы хотите сохранить конфигурацию, специфичную для среды, в файлах,затем вы должны установить производственную конфигурацию на server/datasources.production.json и затем установить переменную среды NODE_ENV на production.LoopBack читает server/datasources.${NODE_ENV}.json при запуске и применяет любые переопределения из этого файла поверх конфигурации по умолчанию, указанной в server/datasources.json.

Сказав это, мы считаем, что лучше использовать https://12factor.net иобеспечить производственную конфигурацию через переменные среды.Я думаю, это то, что вы тоже пытаетесь достичь?

Может быть, вы ищете способ настроить источники данных из переменных среды?LoopBack поддерживает подстановку переменных в определенных файлах конфигурации, datasources.json является одним из поддерживаемых.Например:

{
  "db": {
    "connector": "mysql",

    "database": "${MYSQL_DB}",
    "username": "${MYSQL_USER},
    "password": "${MYSQL_PASSWORD}"
}

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

  • Параметры подключения, используемые при локальной разработке, указаны в файле server/datasources.jsonс использованием параметров конфигурации источника данных, таких как host, database, username и т. д.
  • При работе в производственном режиме (подготовка и т. д.) параметры подключения следует настраивать с помощью одной строки / URL-адреса подключения.Файл источника данных должен содержать запись, в которой для свойства url устанавливается значение, предоставленное средой.
  • Под капотом LoopBack и все коннекторы обеспечивают специальное поведение для поддержки этой функции: свойство url переопределяет вседругие параметры, но игнорируется, когда его нет.

Пример конфигурации источника данных:

{
  "db": {
    "connector": "mysql",

    "database": "demo",
    "username": "demo",
    "password": "L00pBack"

    "url": "${MYSQL_URL}"
}

При работе в производственном режиме вы можете установить строку подключения следующим образом:

export MYSQL_URL=mysql://prod:strong-password@localhost/realdb

Пожалуйста, обратитесь к нашему старому сообщению в блоге https://strongloop.com/strongblog/managing-loopback-configurations-the-twelve-factor-way/, чтобы узнать больше деталей.

...