Всем привет.
Для тестирования приложения хочу использовать одноразовые контейнеры с БД postgres. То есть запускать контейнер, проводить тесты с сохранением в данных в ней, затем удалять контейнер и создавать контейнер вновь на основе image.
Для этого я написал init.sql следующего содержания:
CREATE USER parser WITH PASSWORD 'password';
CREATE DATABASE r;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO parser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT INSERT ON TABLES TO parser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT UPDATE ON TABLES TO parser;
CREATE table reviews (
id integer NOT NULL PRIMARY KEY
);
COMMIT;
Сам контейнер запускается через docker-compose
version: "3.1"
services:
db_test:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: pass
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5444:5432"
Скрипт SQL загружается и выполняет без ошибки, не считая предупреждения, что для commit нет транзакций.
К БД созданным пользователем подключаюсь без проблем, но таблица создается в базе postgres, а не в r, как хотелось бы. Пробовал гуглить как сменить активную БД в SQL, но решений не нашел. Помогите, пожалуйста.