Dblink postgres
Jump to navigation
Jump to search
https://dbaclass.com/article/how-to-create-database-link-in-postgres/
create users in function via dblink
create role tester1 with superuser login password 'tester1'; create database tester1 owner tester1; dblink_connect('hostaddr=127.0.0.1 port=5432 dbname=tester1 user=tester1 password=tester1'); CREATE USER dblinkuser WITH PASSWORD 'dblinkuser';
https://stackoverflow.com/questions/4386118/create-database-using-a-stored-function
CREATE OR REPLACE FUNCTION create_unique_db() RETURNS TEXT AS $$ DECLARE _db TEXT := (SELECT 'u' || REPLACE((SELECT gen_random_uuid()::TEXT), '-', '')); BEGIN IF EXISTS (SELECT 1 FROM pg_database WHERE datname = _db) THEN RAISE NOTICE 'Database already exists'; ELSE EXECUTE FORMAT('CREATE ROLE %s',_db); -- PERFORM dblink_exec('dbname=' || current_database() -- current db -- , 'CREATE DATABASE ' || quote_ident(dbname)); PERFORM dblink_exec('create database foothee'); -- EXECUTE FORMAT('CREATE DATABASE %s OWNER %s',_db, _db); END IF; RETURN _db; END; $$ LANGUAGE plpgsql;