47 lines
1.3 KiB
SQL
47 lines
1.3 KiB
SQL
-- Initialize all databases
|
|
-- Check if databases exist before creating them
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_database WHERE datname = 'n8n_db') THEN
|
|
CREATE DATABASE n8n_db;
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_database WHERE datname = 'gitea_db') THEN
|
|
CREATE DATABASE gitea_db;
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
-- dev_pipeline is already created by POSTGRES_DB environment variable
|
|
|
|
-- Create users
|
|
CREATE USER n8n_user WITH PASSWORD 'n8n_secure_2024';
|
|
CREATE USER gitea_user WITH PASSWORD 'gitea_secure_2024';
|
|
-- Create pipeline_admin user if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'pipeline_admin') THEN
|
|
CREATE USER pipeline_admin WITH PASSWORD 'secure_pipeline_2024';
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
-- Grant permissions
|
|
GRANT ALL PRIVILEGES ON DATABASE n8n_db TO n8n_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE gitea_db TO gitea_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE dev_pipeline TO pipeline_admin;
|
|
|
|
-- Enable extensions on main database
|
|
\c dev_pipeline;
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";
|
|
|
|
-- Create basic monitoring
|
|
\c postgres;
|
|
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";
|