-- Создаем основную базу данных CREATE DATABASE app; \c app; -- Создаем таблицы для основной базы данных CREATE TABLE employees ( id SERIAL PRIMARY KEY, first_name VARCHAR NOT NULL, last_name VARCHAR NOT NULL, department VARCHAR NOT NULL, office VARCHAR NOT NULL, hashed_password VARCHAR NOT NULL, is_active BOOLEAN DEFAULT TRUE, is_admin BOOLEAN DEFAULT FALSE, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE requests ( id SERIAL PRIMARY KEY, request_type VARCHAR NOT NULL, description TEXT NOT NULL, priority VARCHAR NOT NULL, status VARCHAR NOT NULL DEFAULT 'new', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, employee_id INTEGER NOT NULL REFERENCES employees(id) ); CREATE TABLE tokens ( id SERIAL PRIMARY KEY, token VARCHAR UNIQUE NOT NULL, employee_id INTEGER NOT NULL REFERENCES employees(id), created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- Создаем индексы CREATE INDEX idx_employees_last_name ON employees(last_name); CREATE INDEX idx_requests_employee_id ON requests(employee_id); CREATE INDEX idx_requests_status ON requests(status); CREATE INDEX idx_tokens_token ON tokens(token); -- Создаем тестовую базу данных CREATE DATABASE test_app; \c test_app; -- Создаем те же таблицы для тестовой базы данных CREATE TABLE employees ( id SERIAL PRIMARY KEY, first_name VARCHAR NOT NULL, last_name VARCHAR NOT NULL, department VARCHAR NOT NULL, office VARCHAR NOT NULL, hashed_password VARCHAR NOT NULL, is_active BOOLEAN DEFAULT TRUE, is_admin BOOLEAN DEFAULT FALSE, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE requests ( id SERIAL PRIMARY KEY, request_type VARCHAR NOT NULL, description TEXT NOT NULL, priority VARCHAR NOT NULL, status VARCHAR NOT NULL DEFAULT 'new', created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, employee_id INTEGER NOT NULL REFERENCES employees(id) ); CREATE TABLE tokens ( id SERIAL PRIMARY KEY, token VARCHAR UNIQUE NOT NULL, employee_id INTEGER NOT NULL REFERENCES employees(id), created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- Создаем индексы в тестовой базе CREATE INDEX idx_employees_last_name ON employees(last_name); CREATE INDEX idx_requests_employee_id ON requests(employee_id); CREATE INDEX idx_requests_status ON requests(status); CREATE INDEX idx_tokens_token ON tokens(token);