Подготовка базы данн н
Подготовка базы данн н
Сайтгостевойкнигиконференциипредназначендлясбораотзывоввовремяконференций。Намнеобходимохранитькомментарии,оставленныеучастникамиконференции。
Лучшевсегокомментарийописываетсяследующейструктуройданных:автор,егоэлектроннаяпочта,текстсообщенияифотография(необязательно)。Такогородаинформациюлучшевсегохранитьвтрадиционнойреляционнойбазеданных。
МыбудемиспользоватьсервербазыданныхPostgreSQL。
Добавление PostgreSQL в Docker撰写
Дляуправлениясервисаминалокальномкомпьютеребудемиспользовать码头工人。Сгенерированныйфайлdocker-compose.yml
уже содержит оп е еделение се виса дл PostgreSQL:
ВрезультатебудетустановленсерверPostgreSQLинастроеныпеременныеокружениядляименибазыданныхиучётныхданных。Конкретные зна ас ени се а ас н важны。
Также перена а на а а с им по т PostgreSQL (5432
)вконтейнераналокальныйхост,чтобыможнобылополучитьдоступкбазеданныхснашегокомпьютера:
请注意
Модульpdo_pgsql
долженбылбытьустановленнапредыдущемшаге,вместесустановкойPHP。
Запуск Docker撰写
Запустите Docker编写в фоно о ом режиме (- d
):
1
$Docker-compose up -d
Подождитенемного,покабазаданныхзапустится,азатемпроверьте,чтовсёработаетнормально:
1 2 3 4 5
$docker-compose ps命令国家港口名称 --------------------------------------------------------------------------------------- guestbook_database_1 docker-entrypoint.sh postgres 0.0.0.0:32780 - > 5432 / tcp
Если работающих контейнеров нет, или в столб и状态
неотображается向上
, п о ове е е е о о Docker撰写:
1
$docker-compose日志
Обращение к локал но к баз з анн
Использование консол но л программыpsql
может п о и у одитс в отдел н слу и а。Хотядляэтоговамнужнопомнитьучётныеданныеиимябазы。Вамтакженужнознатьлокальныйпорт,накоторомзапущенабазаданных。码头工人выбираетпроизвольныйпортдлятого,чтобывымоглиодновременноработатьнадразнымипроектами,использующимиPostgreSQL(локальныйпортотображаетсяввыводекомандыdocker-compose ps
).
Если вы зап пускаетеpsql
спомощьюSyob娱乐下载mfony CLI,вамненужноничегопомнить。
ob娱乐下载Symfony CLIавтоматическиобнаруживаетсервисы码头工人,запущенныедляпроекта,иустанавливаетпеременныеокружения,необходимыеpsql
дл подкл и ени к баз од анн。
Благодаряэтимсоглашениям,доступкбазеданныхспомощьюкомандыob娱乐下载symfony运行
стано о о итс намно о о проще:
1
$ob娱乐下载Symfony运行PSQL
请注意
Еслинавашемлокальномхостенеустановленакомандаpsql
, вы можете зап пустит её черезdocker-compose
:
1
$docker-compose执行数据库PSQL应用程序
Резервноекопированиеивосстановлениебазыданных
Используйтеpg_dump
, чтобы у и и у у у у т данн н е из базы данн н:
1
$ob娱乐下载Symfony运行pg_dump——data-only > dump.sql
Для о осстано о лени данн:
1
$ob娱乐下载Symfony运行PSQL < dump.sql
Добавление PostgreSQL в Platform.sh
Добавлениетакогосервиса,какPostgreSQL,винфраструктурупродакшенанаPlatform.sh,делаетсячерезизменениявфайле.platform / services.yaml
,“по о уже б о о о о о с сделано с с ре е ре пт”webapp
:
Сервис数据库
——этоPostgreSQL(такойжеверсии,чтоидля码头工人),которыймыразместимвнебольшомконтейнересдискомобъёмом1Гб。
Такженеобходимо”привязать”БДкконтейнеруприложения,которыйописанв.platform.app.yaml
:
Сервис数据库
типаpostgresql
указанкак数据库
в конте те е приложения。
Последним а о ом м м м р од ет доба а ление php -мод л л л лpdo_pgsql
:
Доступ к ба а а а а а а а а а а а
PostgreSQLтеперьработаеткаклокальночерез码头工人,такинапродакшеневPlatform.sh。
Как мы тол л ко о т т то идел, п о запуск кob娱乐下载Symfony运行PSQL
происходитавтоматическоеподключениекбазеданных,размещённойвконтейнере码头工人。Этопроисходитблагодаряпеременнымокружения,установленнымкомандойob娱乐下载symfony运行
.
ЕсливыхотитеподключитьсякPostgreSQL,расположенномвконтейнерахнапродакшен,евыможетеоткрытьSSH -туннельмеждувашейлокальноймашинойиинфраструктуройPlatform.sh:
1 2
$ob娱乐下载syob直播appmfony云:隧道:开放$ob娱乐下载symfony var: expose-from-tunnel
ПоумолчаниюсервисыPlatform.shнеотображаютсявпеременныхокруженияналокальноймашине。Нужно ка а а ат с то и но, испол з о флаг——expose-env-vars
.Почему吗?Подключениекбазеданныхнапродакшен——сервередовольноопасно,посколькуестьрискповредитьреальныеданные。
ТеперьподключитеськудалённойбазеданныхPostgreSQLспомощьюкомандыob娱乐下载Symfony运行PSQL
, как ан:
1
$ob娱乐下载Symfony运行PSQL
Когдазавершитеработу、незабудьтезакрытьтуннель:
1
$ob娱乐下载syob直播appmfony云:隧道:关闭
提示
ДлявыполненияSQL -запросовкбазеданныхнапродакшен,евместоиспользованиякоманднойоболочки,выможетеиспользоватькомандуob娱乐下载symfony的sql
.
Просмотр пе е еменн окружения
码头工人组成иPlatform.shотличноработаютсSymfonyблагодаob娱乐下载ряпеременнымокружения。
Просмотритевсепеременныеокружения,установленныеob娱乐下载
,выполнивob娱乐下载symfony var:出口
:
1 2 3 4 5 6 7 8
$ob娱乐下载symfony var:出口PGHOST=127.0.0.1 PGPORT=32781 PGDATABASE=主PGUSER=主PGPASSWORD=主#……
Переменные окружения, начинающиеся сPG *
используютсяутилитойpsql
.Аостальные吗?
Когда т о ннел к平台。sh отк к с помощьюvar: expose-from-tunnel
,командаvar:出口
возвращает перем менн е из удал нно о о окружения:
1 2 3 4
$ob娱乐下载syob直播appmfony云:隧道:开放$ob娱乐下载symfony var: expose-from-tunnel$ob娱乐下载symfony var:出口$ob娱乐下载syob直播appmfony云:隧道:关闭
Описание а а а е к инфраструктуры
Возможнов,ыещёэтогонеосознали,нохранениеинфраструктурывфайлахвместескодомоченьпомогаетвработе。Настройкаинфраструктурыпроектадля码头工人иPlatform.shпроизводитсявконфигурационныхфайлах。Когдановойфункциональностипотребуетсядополнительныйсервис,изменениявкодеиинфраструктуребудутзафиксированыводномпатче。