Files
2025-11-27 23:05:02 +07:00

41 lines
1.0 KiB
SQL

-- Drop and recreate the database
DROP DATABASE IF EXISTS keepalive;
CREATE DATABASE keepalive;
-- Create user if not exists
DO
$do$
BEGIN
IF NOT EXISTS (
SELECT FROM pg_catalog.pg_roles WHERE rolname = 'keepalive'
) THEN
CREATE ROLE keepalive LOGIN PASSWORD 'keepalive';
END IF;
END
$do$;
-- Grant privileges on the database
GRANT ALL PRIVILEGES ON DATABASE keepalive TO keepalive;
-- Connect to the database
\c keepalive
-- Ensure the user can use the public schema
GRANT USAGE ON SCHEMA public TO keepalive;
GRANT CREATE ON SCHEMA public TO keepalive;
-- Create the table for key/value counters
CREATE TABLE IF NOT EXISTS keepalive (
key VARCHAR(255) PRIMARY KEY,
value BIGINT NOT NULL
);
-- Grant all privileges on the table to the user
GRANT ALL PRIVILEGES ON TABLE keepalive TO keepalive;
-- Initialize key/value
INSERT INTO keepalive (key, value)
VALUES ('counter', 0)
ON CONFLICT (key) DO UPDATE
SET value = EXCLUDED.value;