Last active 1740724148

This can be used when you have an app that needs postgres and you want to quickly make a new db for it with a user

Revision a17490cfbb40f8af713ef7ae79d6bc03f25b81bf

newdb.sql Raw
1CREATE DATABASE [DB Name];
2DO $$
3DECLARE
4 db_name text default '[SAME ONE USED ABOVE]';
5 username text default '[APP NAME]';
6 user_password text default '[MAKE A PASSWORD];
7BEGIN
8 EXECUTE format('CREATE USER %I WITH PASSWORD %L', username, user_password);
9
10 EXECUTE format('GRANT ALL PRIVILEGES ON DATABASE %I TO %I', db_name, username);
11 SET search_path TO db_name, public;
12
13 EXECUTE format('GRANT ALL PRIVILEGES ON SCHEMA public TO %I', username);
14 EXECUTE format('GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO %I', username);
15 EXECUTE format('GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO %I', username);
16 EXECUTE format('ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO %I', username);
17 EXECUTE format('ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO %I', username);
18END $$;