Автоматизированное создание таблиц для Postgres в Cloud Foundry - PullRequest
0 голосов
/ 04 сентября 2018

У нас есть приложение для облачного литейного производства, которое связано со службой Postgresql. Сейчас нам нужно вручную подключиться к базе данных Posgresql с помощью pgAdmin, а затем вручную выполнить запросы для создания наших таблиц.

Попытка решения: Сделай облачный литейный завод run-task , в который я бы установил 1) Установите psql и подключитесь к удаленной базе данных 2) Создайте таблицы

Проблема, с которой я столкнулся, заключалась в том, что cf run-task имеет ограниченные разрешения для установки пакетов.

Каков наилучший способ автоматизации создания таблицы базы данных для облачного литейного приложения?

1 Ответ

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

Ваше приложение будет работать как пользователь без полномочий root, поэтому у него не будет возможности устанавливать пакеты, по крайней мере, традиционным способом. Если вы хотите установить пакет, вы можете использовать Apt Buildpack для его установки. Это установит пакет, но в место, где не требуется root-доступ. Затем он настраивает переменные среды так, чтобы двоичные файлы и библиотеки были правильно найдены.

Также имейте в виду, что задачи связаны с приложением (они оба используют одну и ту же каплю), поэтому для выполнения этой работы вам потребуется выполнить одну из двух вещей:

1.) Используйте multi-buildpacks для запуска Apt buildpack плюс ваш стандартный buildpack. Это создаст дроплет, в котором будут и ваши необходимые пакеты, и биты вашего приложения. Затем вы можете запустить свое приложение и выполнить несколько задач для настройки БД.

2.) Используйте два отдельных приложения. Один для вашего реального приложения и один для вашего кода, который заполняет базу данных.

Либо надо работать. Оба являются действительными способами заполнить вашу базу данных. Другой вариант, который я обычно делаю, это использовать какой-то инструмент для этого. Некоторые фреймворки, такие как Rails, имеют эту встроенную функцию. Если ваш фреймворк этого не делает, вы можете принести свой собственный инструмент, такой как Flyway. Эти инструменты часто также помогают в развитии вашей схемы БД, что также может быть полезно.

...