-- PostgreSQL Database Setup Script for Disk Reorganizer -- Database: disk_reorganizer_db -- User: disk_reorg_user CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- Create the database (run as superuser: auction) CREATE DATABASE disk_reorganizer_db WITH ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE = template0; -- Connect to the new database \c disk_reorganizer_db -- Create the user CREATE USER disk_reorg_user WITH PASSWORD 'heel-goed-wachtwoord'; -- Create files table -- Create index on disk column for faster queries -- Grant privileges to disk_reorg_user GRANT CONNECT ON DATABASE disk_reorganizer_db TO disk_reorg_user; GRANT USAGE ON SCHEMA public TO disk_reorg_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO disk_reorg_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO disk_reorg_user; -- future tables/sequences created by your owner role (pick the role that creates them) ALTER DEFAULT PRIVILEGES FOR ROLE auction IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO disk_reorg_user; ALTER DEFAULT PRIVILEGES FOR ROLE auction IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO disk_reorg_user; -- Create function to update updated_at timestamp CREATE OR REPLACE FUNCTION update_updated_at_column() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = CURRENT_TIMESTAMP; RETURN NEW; END; $$ LANGUAGE plpgsql; -- Create trigger for files table CREATE TRIGGER update_files_updated_at BEFORE UPDATE ON files FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); -- Display success message \echo 'Database setup completed successfully!' \echo 'Database: disk_reorganizer_db' \echo 'User: disk_reorg_user' \echo 'Tables created: files, operations' \echo 'Indexes and triggers created 2)'