/
ruscreator
/
Webed
Обзор
Документация
Войти
/
ruscreator
/
Webed
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
backend/src/database/init.sql
80 строк
3 KB
Алексей Слепов
Initial commit
17 фев 2025, 15:15
17 фев 2025, 15:15
63a31d6
Код
Авторство
О чём код?
-- Устанавливаем кодировку SET client_encoding = 'UTF8'; -- Создаем расширения CREATE EXTENSION IF NOT EXISTS pgcrypto; CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- Удаляем существующие таблицы DROP TABLE IF EXISTS media CASCADE; DROP TABLE IF EXISTS articles CASCADE; DROP TABLE IF EXISTS courses CASCADE; DROP TABLE IF EXISTS users CASCADE; DROP TYPE IF EXISTS user_role; -- Создаем роли пользователей CREATE TYPE user_role AS ENUM ('admin', 'teacher', 'student'); -- Создаем таблицу пользователей CREATE TABLE IF NOT EXISTS users ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), email VARCHAR(255) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, role VARCHAR(50) DEFAULT 'user' ); -- Добавляем тестовых пользователей INSERT INTO users (email, password, role) VALUES -- Тестовый пользователь ( 'test@test.com', '$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy', -- password123 'user' ), -- Админ ( 'admin@example.com', '$2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy', -- password123 'admin' ) ON CONFLICT (email) DO NOTHING; -- Создаем индекс CREATE INDEX IF NOT EXISTS users_role_idx ON users(role); -- Создаем таблицу курсов CREATE TABLE IF NOT EXISTS courses ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), title VARCHAR(255) NOT NULL, description TEXT, price DECIMAL(10,2) NOT NULL DEFAULT 0.00, author_id UUID REFERENCES users(id), created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); -- Создаем таблицу статей CREATE TABLE IF NOT EXISTS articles ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), title VARCHAR(255) NOT NULL, content TEXT NOT NULL, excerpt TEXT, status VARCHAR(20) DEFAULT 'draft', author_id UUID REFERENCES users(id), created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); -- Создаем таблицу медиа CREATE TABLE IF NOT EXISTS media ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), type VARCHAR(50) NOT NULL, url VARCHAR(255) NOT NULL, filename VARCHAR(255) NOT NULL, size INTEGER, uploaded_by UUID NOT NULL REFERENCES users(id), article_id UUID REFERENCES articles(id) ON DELETE SET NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP );