28 lines
923 B
SQL
28 lines
923 B
SQL
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
username VARCHAR(50) UNIQUE NOT NULL,
|
|
password VARCHAR(255) NOT NULL,
|
|
role VARCHAR(20) NOT NULL DEFAULT 'STUDENT'
|
|
);
|
|
|
|
-- Админ по умолчанию: admin / admin (bcrypt через pgcrypto)
|
|
INSERT INTO users (username, password, role)
|
|
VALUES ('admin', crypt('admin', gen_salt('bf', 10)), 'ADMIN')
|
|
ON CONFLICT (username) DO NOTHING;
|
|
|
|
CREATE TABLE IF NOT EXISTS education_forms (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
name VARCHAR(100) UNIQUE NOT NULL
|
|
);
|
|
|
|
INSERT INTO education_forms (name) VALUES ('Бакалавриат'), ('Магистратура'), ('Специалитет')
|
|
ON CONFLICT (name) DO NOTHING;
|
|
|
|
CREATE TABLE IF NOT EXISTS student_groups (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
name VARCHAR(100) UNIQUE NOT NULL,
|
|
education_form_id BIGINT NOT NULL REFERENCES education_forms(id)
|
|
);
|