В качестве основной базы данных для работки веб приложений и создания CRM мы используем PostgreSQL. И сегодня мы расскажем о настройке и конфигурации базы данных в связке с SUSE Linux и подключении к Symfony 4.
Установка базы данных PostgreSQL практически ничем не различается для трех основных вариаций Leap 15, SLES 12 и Tumbleweed.
Первым делом стоит добавить ссылку на repo файл репозитория, который можно найти по ссылке: http://download.opensuse.org/repositories/server:/database:/postgresql/
В конечном виде после выбора системы запрос на добавление репозитория в систему, на примере openSUSE Leap 15:
1 | zypper addrepo http://download.opensuse.org/repositories/server:/database:/postgresql/openSUSE_Leap_15.1/server:database:postgresql.repo |
Обновление репозитариев и установка БД.
1 | zypper ref && zypper in postgresql postgresql-server postgresql-contrib |
После окончания установки добавим сервис postgresql в автозагрузку и запустим сервис БД.
1 2 | systemctl enable postgresql systemctl start postgresql |
На этом установка закончена и переходим к конфигурации
Создать базу данных и пользователя очень просто:
1. Логинимся под пользователем postgres. Если вы не устанавливали отдельный пароль для sudo, то в openSUSE пароли для su и sudo совпадают.
1 | sudo su - postgres |
2. Создаем тестовую базу данных
1 2 | psql CREATE DATABASE deathstar88; |
3. Создаем нового пользователя luke с правами SUPERUSER и задаем пароль для него. Проверяем наличие созданного пользователя, базу данных и выходим из консоли psql. Привилегии пользователя подробно описаны в документации к БД.
1 2 3 4 | CREATE ROLE luke WITH SUPERUSER LOGIN PASSWORD 'yodadie'; \du \l \q |
4. Разлогиниваемся из postgres и правим конфиг аутенификации пользователей
1 | /var/lib/pgsql/data/pg_hba.conf |
1 2 3 4 5 6 | # "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 |
5. Перезагружаем сервис БД
1 | systemctl restart postgresql |
6. Если все было сделано правильно, то результатом будет успешный логин пользователя luke в консоль бд deathstar88
1 | psql -h localhost -U luke deathstar88 |
Для работы с базой данный необходим бандл Doctrine
1 | composer require doctrine |
1 2 3 4 5 6 7 8 | #config/packages/doctrine.yaml doctine: dbal: driver: 'pdo_pgsql' server_version: '10' #версия сервера charset: utf8 # With Symfony 3.3, remove the `resolve:` prefix url: '%env(resolve:DATABASE_URL)%' |
1 2 | #/.env DATABASE_URL=pgsql://luke:yodadie@127.0.0.1:5432/deathstar88 |