46 lines
1.6 KiB
SQL
46 lines
1.6 KiB
SQL
-- PostgreSQL Database Creation Script for New Server
|
|
-- Run as: sudo -u postgres psql -f create-new-database.sql
|
|
|
|
-- Terminate all connections to the database (if it exists)
|
|
SELECT pg_terminate_backend(pid)
|
|
FROM pg_stat_activity
|
|
WHERE datname = 'rocketchat_converted' AND pid <> pg_backend_pid();
|
|
|
|
-- Drop the database if it exists
|
|
DROP DATABASE IF EXISTS rocketchat_converted;
|
|
|
|
-- Create fresh database
|
|
CREATE DATABASE rocketchat_converted;
|
|
|
|
-- Create user (if not exists) - UPDATE PASSWORD BEFORE RUNNING!
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'rocketchat_user') THEN
|
|
CREATE USER rocketchat_user WITH PASSWORD 'HKjLgt23gWuPXzEAn3rW';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Grant database privileges
|
|
GRANT CONNECT ON DATABASE rocketchat_converted TO rocketchat_user;
|
|
GRANT CREATE ON DATABASE rocketchat_converted TO rocketchat_user;
|
|
|
|
-- Connect to the new database
|
|
\c rocketchat_converted;
|
|
|
|
-- Grant schema privileges
|
|
GRANT CREATE ON SCHEMA public TO rocketchat_user;
|
|
GRANT USAGE ON SCHEMA public TO rocketchat_user;
|
|
|
|
-- Grant privileges on all future tables and sequences
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO rocketchat_user;
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO rocketchat_user;
|
|
|
|
-- Display success message
|
|
\echo 'Database created successfully!'
|
|
\echo 'IMPORTANT: Update the password for rocketchat_user before proceeding'
|
|
\echo 'Next steps:'
|
|
\echo '1. Update the password in this file'
|
|
\echo '2. Run export-chat-data.sh on your current server'
|
|
\echo '3. Transfer the exported files to this server'
|
|
\echo '4. Run import-chat-data.sh on this server'
|