codigo0/backend/scripts/create-user.sql

47 lines
1.6 KiB
MySQL
Raw Normal View History

2026-01-19 08:10:16 +00:00
-- 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}
2026-01-19 08:10:16 +00:00
DO $$
DECLARE
db_user TEXT := '${DB_USER:-planetazuzu}';
db_password TEXT := '${DB_PASSWORD}';
2026-01-19 08:10:16 +00:00
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;
2026-01-19 08:10:16 +00:00
ELSE
RAISE NOTICE 'Usuario % ya existe', db_user;
-- Actualizar password
EXECUTE format('ALTER USER %I WITH PASSWORD %L', db_user, db_password);
2026-01-19 08:10:16 +00:00
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