44 lines
1.5 KiB
SQL
44 lines
1.5 KiB
SQL
-- PostgreSQL initialization script for Placebo.mk development
|
|
-- Creates separate databases for backend and CMS
|
|
|
|
-- Create databases if they don't exist
|
|
SELECT 'CREATE DATABASE placebo_backend_db'
|
|
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'placebo_backend_db')\gexec
|
|
|
|
SELECT 'CREATE DATABASE placebo_cms_db'
|
|
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'placebo_cms_db')\gexec
|
|
|
|
-- Create user if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'placebo_user') THEN
|
|
CREATE USER placebo_user WITH PASSWORD 'placebo_password';
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
-- Grant privileges
|
|
GRANT ALL PRIVILEGES ON DATABASE placebo_backend_db TO placebo_user;
|
|
GRANT ALL PRIVILEGES ON DATABASE placebo_cms_db TO placebo_user;
|
|
|
|
-- Create extensions (useful for some applications)
|
|
\c placebo_backend_db
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
|
|
\c placebo_cms_db
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
|
|
|
|
-- Set search path for convenience
|
|
ALTER DATABASE placebo_backend_db SET search_path TO public;
|
|
ALTER DATABASE placebo_cms_db SET search_path TO public;
|
|
|
|
-- Output status
|
|
SELECT 'PostgreSQL initialization complete' AS status;
|
|
SELECT
|
|
datname as database,
|
|
pg_size_pretty(pg_database_size(datname)) as size,
|
|
(SELECT count(*) FROM pg_tables WHERE schemaname = 'public') as tables_count
|
|
FROM pg_database
|
|
WHERE datname IN ('placebo_backend_db', 'placebo_cms_db'); |