Как мне сделать, чтобы мой проект Laravel на Heroku использовал Heroku Postgres? - PullRequest
0 голосов
/ 17 января 2019

Я работал над проектом, который требует, чтобы я настроил его в Heroku.База данных, которую я до сих пор использовал локально, - это MySQL, но я хочу использовать Postgre, когда проект находится на Heroku.

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

Если есть альтернативный способ использовать mySQL как есть, это было бы здорово.

Спасибо за помощь.

1 Ответ

0 голосов
/ 17 января 2019

Heroku помещает (после предоставления экземпляра Heroku Postgres) учетные данные базы данных в переменную среды DATABASE_URL в следующем формате:

postgres://username:password@hostname:port/database

Теперь вы можете вручную заполнить DB_HOST, DB_USERNAME и т. Д. .env переменными, но есть и лучший способ: вы можете проанализировать URL в файле config/database.php.

'pgsql' => [
    'driver' => 'pgsql',
    'host' => parse_url(env('DATABASE_URL'), PHP_URL_HOST),
    'port' => parse_url(env('DATABASE_URL'), PHP_URL_PORT),
    'database' => ltrim(parse_url(env('DATABASE_URL'), PHP_URL_PATH), '/'),
    'username' => parse_url(env('DATABASE_URL'), PHP_URL_USER),
    'password' => parse_url(env('DATABASE_URL'), PHP_URL_PASS),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
    'sslmode' => 'prefer',
],

(Убедитесь, что вы установили DB_CONNECTION на pgsql, чтобы использовать это соединение!)

как мне выполнить основные функции, такие как добавление новой базы данных в Postgres

Вы не делаете. Экземпляр Heroku Postgres поставляется с одной базой данных.

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