Организовать схему CI/CD на Postgres
Кратко
Есть несколько проектов на Laravel + MySQL + автотесты на PHPUnit. Теперь все это нужно перевезти на Postres, и я не понимаю как правильно раздать гранты CI-пользователю в этой РСУБД.
Развернуто
Сейчас есть автоматическое тестирование на MySQL, для чего используется отдельный пользователь ci-test, которому разрешено практически все на базах данных ci-test-*. Базы заводятся вручную, но выдавать каждый раз права этому пользователю не нужно - работает "звездочка".
Теперь я хочу сделать похожую систему авто-тестирования на Postgres. Вот список требований, пожеланий и понимания как это сделать наилучшим образом:
- один пользователь
ci-test - одна схема
ci_testна которую выдать по-максимуму гранты дляci-test - несколько сервисов, который могут гонять тесты одновременно, то есть нужна куча БД
- и как следствие, такое пожелание: грант на создание баз данных вида
ci-test-*, напримерci-test-shop-1,ci-test-shop-2
Должно получиться так:
Запускается тест, который создает базу данных
ci-test-.... Скрипт это уже умеет делать, тут больше вопрос - как ограничить его возможности через гранты.Запускает миграция, которая создает необходимую структуру таблиц в БД, причем
search_path=ci_testСобственно, тест
Что я делал, но не получилось
CREATE USER "ci-test" WITH PASSWORD 'ci-test';
CREATE SCHEMA "ci_test" AUTHORIZATION "ci-test";
CREATE DATABASE "ci-test-shop-1"; -- тут я на всякий случай сам создал БД
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL ON TABLES TO "ci-test";
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL PRIVILEGES ON TABLES TO "ci-test";
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL ON SEQUENCES TO "ci-test";
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL ON FUNCTIONS TO "ci-test";
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL ON ROUTINES TO "ci-test";
ALTER DEFAULT PRIVILEGES IN SCHEMA "ci_test" GRANT ALL ON TYPES TO "ci-test";
Сейчас тест не работает: password authentication failed for user "ci-test". Я догадываюсь, что нужно навесить гранты на ci-test-shop-1, но вот хочется сделать это каким-то шаблонным способом через "звездочку".