-- Script SQL para crear usuario y base de datos -- EJECUTAR: sudo -u postgres psql -f scripts/create-user.sql -- Crear usuario si no existe -- ⚠️ IMPORTANTE: Reemplaza 'TU_PASSWORD_AQUI' con una contraseña segura -- O mejor aún, usa variables de entorno: ${DB_USER} y ${DB_PASSWORD} DO $$ DECLARE db_user TEXT := '${DB_USER:-planetazuzu}'; db_password TEXT := '${DB_PASSWORD}'; BEGIN IF db_password IS NULL OR db_password = '' THEN RAISE EXCEPTION 'DB_PASSWORD no configurado. Configura la variable de entorno antes de ejecutar.'; END IF; IF NOT EXISTS (SELECT FROM pg_user WHERE usename = db_user) THEN EXECUTE format('CREATE USER %I WITH PASSWORD %L', db_user, db_password); RAISE NOTICE 'Usuario % creado', db_user; ELSE RAISE NOTICE 'Usuario % ya existe', db_user; -- Actualizar password EXECUTE format('ALTER USER %I WITH PASSWORD %L', db_user, db_password); END IF; END $$; -- Crear base de datos si no existe SELECT 'CREATE DATABASE emerges_tes OWNER planetazuzu' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'emerges_tes')\gexec -- Dar permisos GRANT ALL PRIVILEGES ON DATABASE emerges_tes TO planetazuzu; -- Conectar a la base de datos y dar permisos en el esquema \c emerges_tes -- Crear esquema si no existe (se creará en migración, pero por si acaso) CREATE SCHEMA IF NOT EXISTS emerges_content; -- Dar permisos en el esquema GRANT ALL ON SCHEMA emerges_content TO planetazuzu; ALTER DEFAULT PRIVILEGES IN SCHEMA emerges_content GRANT ALL ON TABLES TO planetazuzu; ALTER DEFAULT PRIVILEGES IN SCHEMA emerges_content GRANT ALL ON SEQUENCES TO planetazuzu; \q