/etc/postgresql/' . $pgVersion . '/main/pg_hba.conf"' . "\n"; echo 'sudo systemctl restart postgresql' . "\n"; echo 'sudo -u postgres psql -c "CREATE DATABASE ' . $db_name . ';"' . "\n"; echo 'sudo -u postgres psql -c "CREATE USER ' . $db_user . ' WITH PASSWORD \'' . $password . '\';"' . "\n"; echo 'sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ' . $db_name . ' TO ' . $db_user . ';"' . "\n"; echo 'sudo -u postgres psql -c "GRANT USAGE, CREATE ON SCHEMA public TO ' . $db_user . ';"' . "\n"; // *** Change owner of all tables in public to $db_user *** echo "sudo -u postgres psql -d {$db_name} -c 'DO \$\$ DECLARE r RECORD; BEGIN FOR r IN SELECT tablename FROM pg_tables WHERE schemaname = ''public'' LOOP EXECUTE ''ALTER TABLE public.'' || quote_ident(r.tablename) || '' OWNER TO {$db_user}''; END LOOP; END \$\$;'" . "\n"; // *** Change owner of all sequences in public to $db_user *** echo "sudo -u postgres psql -d {$db_name} -c 'DO \$\$ DECLARE r RECORD; BEGIN FOR r IN SELECT sequencename FROM pg_sequences WHERE schemaname = ''public'' LOOP EXECUTE ''ALTER SEQUENCE public.'' || quote_ident(r.sequencename) || '' OWNER TO {$db_user}''; END LOOP; END \$\$;'" . "\n"; echo 'sudo systemctl restart postgresql' . "\n"; // If config already existed, don't overwrite it if (file_exists($configPath)) { echo "Config file already exists at {$configPath}, not overwriting.\n"; return; } // Ensure /opt/DragonCore exists if (!is_dir($dir)) { if (!mkdir($dir, 0755, true) && !is_dir($dir)) { fwrite(STDERR, "Failed to create directory: $dir\n"); return; } } // Create config.php with variables (no return) $config = <<