Konfigurowanie, bazy danych

Konfigurowanie, bazy danych

stroona internetowa ksiagigoenko konferencji dotyczy zbierania opinii podczas konferencji。Komentarze uczestników konferencji muszą byic utrwalone w bazie danych。

Komentarz najlepiej opisuje ustalona struktura danych:作者,jego e-mail, tekst opinion i opcjonalne zdjeycie。对rodzaj danych的玩笑,które mogą byvik wygodnie przechowywane w tradycyjnym silniku relacyjnej bazy danych。

PostgreSQL到silnik bazodanowy, którego bldziemy uzywavic。

Dodawanie PostgreSQL做Docker撰写

Na naszej lokalnej maszynie zdecydowaliimmy się乌茨克Dockera do zarzitzzania usutugami。Wygenerowany plikdocker-compose.ymljuzawiera PostgreSQL jako usługę:

docker-compose.yml
12 3 4 5 6 7 8 9 10 11 12 13
###>教条/教条束###数据库:图片:postgres: $ {POSTGRES_VERSION: -13}高山环境:POSTGRES_DB:$ {POSTGRES_DB:应用}#你一定要在生产环境中修改密码POSTGRES_PASSWORD:$ {POSTGRES_PASSWORD: -ChangeMe}POSTGRES_USER:$ {POSTGRES_USER:ob娱乐下载 symfony}卷:-db-data: / var / lib / postgresql /数据:rw光碟#您可以使用绑定挂载的主机目录,这样就不会意外删除卷并丢失所有数据!# - ./docker/db/data:/var/lib/postgresql/data:rw . xml###<教条/教条束###

Ta operacja zainstaluje serwer PostgreSQL i skonfiguruje niektóre zmienne trodowiskowe, które kontrolują nazwę bazy danych i dane uwierzytelniajce。瓦尔托维奇尼mają wiekszego znaczenia。

również端口PostgreSQL (5432) kontenera do lokalnego hosta。致pomoze nam uzyskich dostkpp do bazy danych z naszej maszyny:

docker-compose.override.yml
1 2 3 4 5
###>教条/教条束###数据库:港口:-“5432”###<教条/教条束###

请注意

Rozszerzeniepdo_pgsqlpowinno byich zainstalowane po tym, jak konfigurowalizmy PHP w poprzednim kroku。

Uruchamianie Docker撰写

Uruchom Docker撰写w tle (- d):

1
Docker-compose up -d

Poczekaj chwilę,阿耶扎巴扎danych się uruchomi i sprawd, czy wszystko dziaova prawidowo:

1 2 3 4 5
docker-compose ps命令国家港口名称  --------------------------------------------------------------------------------------- guestbook_database_1 docker-entrypoint.sh postgres 0.0.0.0:32780 - > 5432 / tcp

jeutli nie ma uruchomionych kontenerów lub jeutli kolumna状态Nie ma wartowicci向上Docker撰写:

1
docker-compose日志

dostecpp do lokalnej bazy danych

Korzystanie z narzichdziapsqlW linii polecezynmoake okazak się przydatne od czasu do czasu, ale musisz wtedy znaic Dane uwierzytelniajhce I nazwę bazy danych a takake, co jest mniej oczywiste, lokalny port, na którym dziaova baza danych。Docker wybiera losowy port, dzianyki czemu motsez pracowaic nad wiechej ni耶耶德nym project jektem korzystajcym z serwera PostgreSQL w tym samym czasie (port lokalny jest częścią danych wyjciowychdocker-compose ps).

我李śuruchomiszpsql扎pomocą Syob娱乐下载mfony CLI nie musisz o niczym pamizhatacic。

ob娱乐下载Symfony CLI automatycznie wykrywa usugi Docker uruchomione dla projektu i udostzhepnia zmienne trodowiskowe, którychpsqlPotrzebuje do po华沙琴尼亚z bazą丹尼。

兹耶基·提姆·扎萨多姆·多斯塔耶普·巴兹·丹尼奇·波热兹ob娱乐下载symfony运行笑话znacznie czatwiejszy:

1
ob娱乐下载Symfony运行PSQL

请注意

jeutli nie masz binarnej wersjipsqlNa swoim komputerze, moesz uruchomic go za porenrednictwm poleceniadocker-compose

1
docker-compose执行数据库PSQL main main

Zrzucanie i przywracanie bazy danych

Skorzystaj z poleceniapg_dumpW celu wykonania zrzutu bazy dananych:

1
ob娱乐下载Symfony运行pg_dump——data-only > dump.sql

我przywróć bazę:

1
ob娱乐下载Symfony运行PSQL < dump.sql

Dodawanie PostgreSQL do Platform.sh

W przypadku infrastructure produkcyjnej na Platform.sh, dodanie ususguki takiej jak PostgreSQL powinno byic wykonane W pliku.platform / services.yaml, który zostaov utworzony za pomocą przepisu z pakietuwebapp

.platform / services.yaml
1 2 3
数据库:类型:postgresql: 13磁盘:1024

我们ł佐治亚大学数据库jest bazą danych PostgreSQL (w takiej wersji, jaka jest w Dockerze), którą chcemy udostzynpniki z dyskiem o powierzchni 1GB。

Musimy również“po波兰维奇”bazę danych z kontenerem aplikacji, który jest opisany w.platform.app.yaml

.platform.app.yaml
1 2
关系:数据库:“数据库:postgresql”

我们ł佐治亚大学数据库typupostgresql开玩笑吧数据库W kontenerze aplikacyjnym。

sprawdczy rozszzerzeniepdo_pgsqljest juzainstalowane dla trodowiska uruchomieniowego PHP:

.platform.app.yaml
1 2 3 4 5
运行时:扩展:#其他扩展-pdo_pgsql#其他扩展

dostzpp do bazy danych w Platform.sh

PostgreSQL dziaaya teraz zarówno lokalnie poprzez Dockera, jak i na produkcji w Platform.sh。

Jak wyakenkinie widzielikjmy, uruchamianieob娱乐下载Symfony运行PSQLautomatycznie华沙奇się z bazą danych hostowaną przez Dockera dzizyki zmiennym trodowiskowym udost吉普尼尼姆przezob娱乐下载symfony运行

jeutli chcesz się po华沙奇奇z PostgreSQL hostowanym w kontenerach produkcyjnych, moesz otworzych tunel SSH pomianydzy lokalnym komputerem a infrastrukturą Platform.sh:

1 2
ob娱乐下载syob直播appmfony云:隧道:开放ob娱乐下载symfony var: expose-from-tunnel

domylnie ususugi Platform.sh nie są udostzhepniane jako zmienne trodowiskowe na lokalnym komputerze。Musisz to zrobiic samodzielnie, korzystajjansc z flagi——expose-env-vars.Dlaczego吗?pod华沙琴涅做产品cyjnej bazy danych笑话niebezpieczną operacją。莫泽兹w十sposób纳米比亚扎克zprawdziwymidanymi。

po波兰茨się teraz泽zdalną bazą danych PostgreSQL korzystajjansc zob娱乐下载Symfony运行PSQL, jak poprzednio:

1
ob娱乐下载Symfony运行PSQL

Kiedy skozynysz, nie zapomnij zamknivic tunelu:

1
ob娱乐下载syob直播appmfony云:隧道:关闭

提示

Aby uruchomich niektóre zapytania SQL w produkcyjnej bazie danych zamiast korzystak z powwoki, moesz wykorzystak polecenieob娱乐下载symfony的sql

udostyppnianie zmiennych korodowiskowych

Docker Compose i Platform.sh dobrze współpracują z ob娱乐下载Symfony dzianyki zmiennym trodowiskowym。

柏林,华沙,兹米恩,茨罗多维斯科,乌多斯特佩尼,普利策ob娱乐下载poleceniaob娱乐下载symfony var:出口

1 2 3 4 5 6 7 8
ob娱乐下载symfony var:出口PGHOST=127.0.0.1 PGPORT=32781 PGDATABASE=主PGUSER=主PGPASSWORD=主#……

ZmienneśrodowiskowePG *Są odczytywane przez narzymdziepsql.A co z innymi?

Kiedy tunel jest zestawiony z平台。sh zvar: expose-from-tunnel, polecenievar:出口Zwraca również zdalne zmienne korodowiskowe:

1 2 3 4
ob娱乐下载syob直播appmfony云:隧道:开放ob娱乐下载symfony var: expose-from-tunnelob娱乐下载symfony var:出口ob娱乐下载syob直播appmfony云:隧道:关闭

Opisywanie infrastruktury

拜克莫耶兹耶兹涅兹达瓦耶耶维奇索比兹特哥蔓延,埃尔波西达尼基础设施przechowywanej w plikach wrazz kodem bardzo pomaga。Docker i Platform.sh używają plików konfigacyjnych do opisania infrastructure projektu。Gdy nowa funkcja wymaga dodatkowej ususugi, zmiany kodu i zmiany基础设施są częścią tej samej poprawki。

此工作,包括代码示例,是根据知识共享协议BY-NC-SA 4.0许可证。