Files
new_lottery_bot/scripts/init_postgres.sql
2025-11-16 12:36:02 +09:00

34 lines
1.5 KiB
SQL

-- Инициализация PostgreSQL для Lottery Bot
-- Создание пользователя для приложения (если не существует)
DO $$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'lottery_app') THEN
CREATE ROLE lottery_app LOGIN PASSWORD 'lottery_app_password';
END IF;
END
$$;
-- Предоставление прав
GRANT CONNECT ON DATABASE lottery_bot TO lottery_app;
GRANT USAGE ON SCHEMA public TO lottery_app;
GRANT CREATE ON SCHEMA public TO lottery_app;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO lottery_app;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO lottery_app;
-- Установка прав по умолчанию для новых таблиц
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO lottery_app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO lottery_app;
-- Создание индексов для оптимизации производительности
-- (будут созданы после создания таблиц через Alembic)
-- Включение расширений
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pg_stat_statements";
-- Настройка для мониторинга
CREATE EXTENSION IF NOT EXISTS "pg_stat_monitor";
-- Комментарии
COMMENT ON DATABASE lottery_bot IS 'Lottery Bot Database - Telegram Bot for Lottery Management';