@input_denis

Как задать в какой БД создать таблицу?

Всем привет.

Для тестирования приложения хочу использовать одноразовые контейнеры с БД 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, но решений не нашел. Помогите, пожалуйста.
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Отключиться от подключённой в данный момент базы, подключиться к нужной.

\connect dbname
если файл проходит через psql.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы