55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Script para crear usuario y base de datos PostgreSQL
|
||
|
|
# Ejecutar: bash crear-usuario-y-bd.sh
|
||
|
|
|
||
|
|
echo "🔧 Creando usuario y base de datos PostgreSQL..."
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Copiar SQL a /tmp para que postgres pueda acceder
|
||
|
|
cat > /tmp/create-user-emerges.sql << 'SQL'
|
||
|
|
-- Crear usuario si no existe
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'planetazuzu') THEN
|
||
|
|
CREATE USER planetazuzu WITH PASSWORD 'Monforte.1977';
|
||
|
|
RAISE NOTICE 'Usuario planetazuzu creado';
|
||
|
|
ELSE
|
||
|
|
RAISE NOTICE 'Usuario planetazuzu ya existe';
|
||
|
|
ALTER USER planetazuzu WITH PASSWORD 'Monforte.1977';
|
||
|
|
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
|
||
|
|
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
|
||
|
|
SQL
|
||
|
|
|
||
|
|
# Ejecutar con sudo
|
||
|
|
echo "Ejecutando SQL (requiere contraseña de sudo)..."
|
||
|
|
sudo -u postgres psql -f /tmp/create-user-emerges.sql
|
||
|
|
|
||
|
|
# Limpiar
|
||
|
|
rm -f /tmp/create-user-emerges.sql
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "✅ Proceso completado"
|
||
|
|
echo ""
|
||
|
|
echo "Verificar con: cd backend && npm run verify"
|