update depoyments need separate gitlab-ci to another repo
This commit is contained in:
parent
e32727bf7f
commit
4d3da48b02
@ -14,64 +14,3 @@ services:
|
|||||||
AUTH_URL: 'http://10.8.0.8:59300/user'
|
AUTH_URL: 'http://10.8.0.8:59300/user'
|
||||||
ports:
|
ports:
|
||||||
- 10.8.0.9:1488:1488
|
- 10.8.0.9:1488:1488
|
||||||
|
|
||||||
storer:
|
|
||||||
hostname: squiz-storer
|
|
||||||
container_name: squiz-storer
|
|
||||||
image: $CI_REGISTRY_IMAGE/main-storer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1489
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.8.0.9 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
ports:
|
|
||||||
- 10.8.0.9:1489:1489
|
|
||||||
worker:
|
|
||||||
hostname: squiz-worker
|
|
||||||
container_name: squiz-worker
|
|
||||||
image: $CI_REGISTRY_IMAGE/main-worker:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PG_CRED: 'host=10.8.0.9 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
KAFKA_BROKER: '10.8.0.8:9092'
|
|
||||||
KAFKA_TOPIC: 'tariffs'
|
|
||||||
QUIZ_ID: quizCnt
|
|
||||||
AMOUNT: 10
|
|
||||||
UNLIM_ID: quizUnlimTime
|
|
||||||
REDIS_HOST: '10.8.0.9:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
SMTP_API_URL: 'https://api.smtp.bz/v1/smtp/send'
|
|
||||||
SMTP_HOST: 'connect.smtp.bz'
|
|
||||||
SMTP_PORT: '587'
|
|
||||||
SMTP_UNAME: 'team@pena.digital'
|
|
||||||
SMTP_PASS: 'AyMfwqA9LkQH'
|
|
||||||
SMTP_API_KEY: '8tv2xcsfCMBX3TCQxzgeeEwAEYyQrPUp0ggw'
|
|
||||||
SMTP_SENDER: 'recovery@noreply.pena.digital'
|
|
||||||
CUSTOMER_SERVICE_ADDRESS: 'http://10.8.0.8:8065/'
|
|
||||||
answerer:
|
|
||||||
hostname: squiz-answerer
|
|
||||||
container_name: squiz-answerer
|
|
||||||
image: $CI_REGISTRY_IMAGE/main-answerer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1490
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.8.0.9 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
REDIS_HOST: '10.8.0.9:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
ports:
|
|
||||||
- 10.8.0.9:1490:1490
|
|
||||||
|
@ -15,63 +15,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 1488:1488
|
- 1488:1488
|
||||||
|
|
||||||
storer:
|
|
||||||
hostname: squiz-storer
|
|
||||||
container_name: squiz-storer
|
|
||||||
image: $CI_REGISTRY_IMAGE/storer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1489
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
ports:
|
|
||||||
- 1489:1489
|
|
||||||
worker:
|
|
||||||
hostname: squiz-worker
|
|
||||||
container_name: squiz-worker
|
|
||||||
image: $CI_REGISTRY_IMAGE/worker:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
KAFKA_BROKER: '10.6.0.11:9092'
|
|
||||||
KAFKA_TOPIC: 'tariffs'
|
|
||||||
QUIZ_ID: quizCnt
|
|
||||||
AMOUNT: 10
|
|
||||||
UNLIM_ID: quizUnlimTime
|
|
||||||
REDIS_HOST: '10.6.0.23:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
SMTP_HOST: 'connect.mailclient.bz'
|
|
||||||
SMTP_PORT: '587'
|
|
||||||
SMTP_SENDER: 'noreply@mailing.pena.digital'
|
|
||||||
SMTP_IDENTITY: ''
|
|
||||||
SMTP_USERNAME: 'kotilion.95@gmail.com'
|
|
||||||
SMTP_PASSWORD: 'vWwbCSg4bf0p'
|
|
||||||
SMTP_API_KEY: 'P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev'
|
|
||||||
CUSTOMER_SERVICE_ADDRESS: 'http://10.6.0.11:8065/'
|
|
||||||
answerer:
|
|
||||||
hostname: squiz-answerer
|
|
||||||
container_name: squiz-answerer
|
|
||||||
image: $CI_REGISTRY_IMAGE/answerer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1490
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
REDIS_HOST: '10.6.0.23:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
ports:
|
|
||||||
- 1490:1490
|
|
||||||
|
@ -14,64 +14,3 @@ services:
|
|||||||
AUTH_URL: 'http://10.6.0.11:59300/user'
|
AUTH_URL: 'http://10.6.0.11:59300/user'
|
||||||
ports:
|
ports:
|
||||||
- 1488:1488
|
- 1488:1488
|
||||||
|
|
||||||
storer:
|
|
||||||
hostname: squiz-storer
|
|
||||||
container_name: squiz-storer
|
|
||||||
image: $CI_REGISTRY_IMAGE/staging-storer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1489
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
ports:
|
|
||||||
- 1489:1489
|
|
||||||
worker:
|
|
||||||
hostname: squiz-worker
|
|
||||||
container_name: squiz-worker
|
|
||||||
image: $CI_REGISTRY_IMAGE/staging-worker:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
KAFKA_BROKER: '10.6.0.11:9092'
|
|
||||||
KAFKA_TOPIC: 'tariffs'
|
|
||||||
QUIZ_ID: quizCnt
|
|
||||||
AMOUNT: 10
|
|
||||||
UNLIM_ID: quizUnlimTime
|
|
||||||
REDIS_HOST: '10.6.0.23:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
SMTP_HOST: 'connect.mailclient.bz'
|
|
||||||
SMTP_PORT: '587'
|
|
||||||
SMTP_SENDER: 'noreply@mailing.pena.digital'
|
|
||||||
SMTP_IDENTITY: ''
|
|
||||||
SMTP_USERNAME: 'kotilion.95@gmail.com'
|
|
||||||
SMTP_PASSWORD: 'vWwbCSg4bf0p'
|
|
||||||
SMTP_API_KEY: 'P0YsjUB137upXrr1NiJefHmXVKW1hmBWlpev'
|
|
||||||
CUSTOMER_SERVICE_ADDRESS: 'http://10.6.0.11:8065/'
|
|
||||||
answerer:
|
|
||||||
hostname: squiz-answerer
|
|
||||||
container_name: squiz-answerer
|
|
||||||
image: $CI_REGISTRY_IMAGE/staging-answerer:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID
|
|
||||||
tty: true
|
|
||||||
environment:
|
|
||||||
IS_PROD_LOG: 'false'
|
|
||||||
IS_PROD: 'false'
|
|
||||||
PUBLIC_ACCESS_SECRET_KEY: $JWT_PUBLIC_KEY
|
|
||||||
PORT: 1490
|
|
||||||
MINIO_EP: 'storage.yandexcloud.net'
|
|
||||||
MINIO_AK: 'YCAJEOcqqTHpiwL4qFwLfHPNA'
|
|
||||||
MINIO_SK: 'YCNIAIat0XqdDzycWsYKX3OU7mPor6S0WmMoG4Ry'
|
|
||||||
PG_CRED: 'host=10.6.0.23 port=5433 user=squiz password=Redalert2 dbname=squiz sslmode=disable'
|
|
||||||
REDIS_HOST: '10.6.0.23:6379'
|
|
||||||
REDIS_PASSWORD: 'Redalert2'
|
|
||||||
REDIS_DB: 2
|
|
||||||
ports:
|
|
||||||
- 1490:1490
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
services:
|
|
||||||
test-postgres:
|
|
||||||
image: postgres
|
|
||||||
environment:
|
|
||||||
POSTGRES_PASSWORD: Redalert2
|
|
||||||
POSTGRES_USER: squiz
|
|
||||||
POSTGRES_DB: squiz
|
|
||||||
ports:
|
|
||||||
- 35432:5432
|
|
||||||
networks:
|
|
||||||
- penatest
|
|
||||||
healthcheck:
|
|
||||||
test: pg_isready -U squiz
|
|
||||||
interval: 2s
|
|
||||||
timeout: 2s
|
|
||||||
retries: 10
|
|
||||||
|
|
||||||
networks:
|
|
||||||
penatest:
|
|
||||||
|
|
||||||
# просто чтоб тестануть мигрировала ли бд
|
|
||||||
# в app/app.go pgdal, err := dal.New(ctx, "host=localhost port=35432 user=squiz password=Redalert2 dbname=squiz sslmode=disable")
|
|
2
go.mod
2
go.mod
@ -15,7 +15,7 @@ require (
|
|||||||
github.com/themakers/hlog v0.0.0-20191205140925-235e0e4baddf
|
github.com/themakers/hlog v0.0.0-20191205140925-235e0e4baddf
|
||||||
go.uber.org/zap v1.26.0
|
go.uber.org/zap v1.26.0
|
||||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d
|
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240313164312-4560248259a0
|
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240314111040-7ed859ef7876
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3
|
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3
|
||||||
)
|
)
|
||||||
|
|
||||||
|
4
go.sum
4
go.sum
@ -186,7 +186,7 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d h1:gbaDt35HMDqOK84WYmDIlXMI7rstUcRqNttaT6Kx1do=
|
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d h1:gbaDt35HMDqOK84WYmDIlXMI7rstUcRqNttaT6Kx1do=
|
||||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM=
|
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM=
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240313164312-4560248259a0 h1:YbffFOWneoINvEqCWClf5Zatu/a0VNo9RM0nYveCzhk=
|
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240314111040-7ed859ef7876 h1:875+tdI7KuftCn9hZer2p9vq88FX0gbAaHOeCy1n6T4=
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240313164312-4560248259a0/go.mod h1:JgbH8cdAJBr3jx3BuY5nnuTyMdZ1XkRxo8a3w4Y3C0Y=
|
penahub.gitlab.yandexcloud.net/backend/quiz/common.git v0.0.0-20240314111040-7ed859ef7876/go.mod h1:okduDAq0NVVDcM+TMyrd4mVXzBMeTzYI2B2/yi1sL1Y=
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3 h1:BLHIUnJAttW9OAW7A63H9ON/HPhXdpBa/YPUQWD4ORA=
|
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3 h1:BLHIUnJAttW9OAW7A63H9ON/HPhXdpBa/YPUQWD4ORA=
|
||||||
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3/go.mod h1:/BFcX4F10DRuFuAHlwkKO+1QAXPL4i49x1tsrTwxlqE=
|
penahub.gitlab.yandexcloud.net/backend/quiz/worker.git v0.0.0-20240313171802-7da5fbb4caf3/go.mod h1:/BFcX4F10DRuFuAHlwkKO+1QAXPL4i49x1tsrTwxlqE=
|
||||||
|
24
schema/000001_init.down.sql
Normal file
24
schema/000001_init.down.sql
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
-- Drop indexes
|
||||||
|
DROP INDEX IF EXISTS subquizes;
|
||||||
|
DROP INDEX IF EXISTS birthtime;
|
||||||
|
DROP INDEX IF EXISTS groups;
|
||||||
|
DROP INDEX IF EXISTS timeouted;
|
||||||
|
DROP INDEX IF EXISTS active ON quiz;
|
||||||
|
DROP INDEX IF EXISTS questiontype;
|
||||||
|
DROP INDEX IF EXISTS required;
|
||||||
|
DROP INDEX IF EXISTS relation;
|
||||||
|
DROP INDEX IF EXISTS active ON question;
|
||||||
|
|
||||||
|
-- Drop tables
|
||||||
|
DROP TABLE IF EXISTS privileges;
|
||||||
|
DROP TABLE IF EXISTS answer;
|
||||||
|
DROP TABLE IF EXISTS question;
|
||||||
|
DROP TABLE IF EXISTS quiz;
|
||||||
|
DROP TABLE IF EXISTS account;
|
||||||
|
|
||||||
|
-- Drop types
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
DROP TYPE IF EXISTS question_type;
|
||||||
|
DROP TYPE IF EXISTS quiz_status;
|
||||||
|
END$$;
|
120
schema/000001_init.up.sql
Normal file
120
schema/000001_init.up.sql
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
-- Create types
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'question_type') THEN
|
||||||
|
CREATE TYPE question_type AS ENUM (
|
||||||
|
'variant',
|
||||||
|
'images',
|
||||||
|
'varimg',
|
||||||
|
'emoji',
|
||||||
|
'text',
|
||||||
|
'select',
|
||||||
|
'date',
|
||||||
|
'number',
|
||||||
|
'file',
|
||||||
|
'page',
|
||||||
|
'rating'
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'quiz_status') THEN
|
||||||
|
CREATE TYPE quiz_status AS ENUM (
|
||||||
|
'draft',
|
||||||
|
'template',
|
||||||
|
'stop',
|
||||||
|
'start',
|
||||||
|
'timeout',
|
||||||
|
'offlimit'
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
||||||
|
END$$;
|
||||||
|
|
||||||
|
-- Create tables
|
||||||
|
CREATE TABLE IF NOT EXISTS account (
|
||||||
|
id UUID PRIMARY KEY,
|
||||||
|
user_id VARCHAR(24),
|
||||||
|
email VARCHAR(50),
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
deleted BOOLEAN DEFAULT false
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS quiz (
|
||||||
|
id bigserial UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
qid uuid DEFAULT uuid_generate_v4(),
|
||||||
|
accountid varchar(30) NOT NULL,
|
||||||
|
deleted boolean DEFAULT false,
|
||||||
|
archived boolean DEFAULT false,
|
||||||
|
fingerprinting boolean DEFAULT false,
|
||||||
|
repeatable boolean DEFAULT false,
|
||||||
|
note_prevented boolean DEFAULT false,
|
||||||
|
mail_notifications boolean DEFAULT false,
|
||||||
|
unique_answers boolean DEFAULT false,
|
||||||
|
super boolean DEFAULT false,
|
||||||
|
group_id bigint DEFAULT 0,
|
||||||
|
name varchar(280),
|
||||||
|
description text,
|
||||||
|
config text,
|
||||||
|
status quiz_status DEFAULT 'draft',
|
||||||
|
limit_answers integer DEFAULT 0,
|
||||||
|
due_to integer DEFAULT 0,
|
||||||
|
time_of_passing integer DEFAULT 0,
|
||||||
|
pausable boolean DEFAULT false,
|
||||||
|
version smallint DEFAULT 0,
|
||||||
|
version_comment text DEFAULT '',
|
||||||
|
parent_ids integer[],
|
||||||
|
created_at timestamp DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at timestamp DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
questions_count integer DEFAULT 0,
|
||||||
|
answers_count integer DEFAULT 0,
|
||||||
|
average_time_passing integer DEFAULT 0
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS question (
|
||||||
|
id bigserial UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
quiz_id bigint NOT NULL,
|
||||||
|
title varchar(512) NOT NULL,
|
||||||
|
description text,
|
||||||
|
questiontype question_type DEFAULT 'text',
|
||||||
|
required boolean DEFAULT false,
|
||||||
|
deleted boolean DEFAULT false,
|
||||||
|
page smallint DEFAULT 0,
|
||||||
|
content text,
|
||||||
|
version smallint DEFAULT 0,
|
||||||
|
parent_ids integer[],
|
||||||
|
created_at timestamp DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
updated_at timestamp DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT quiz_relation FOREIGN KEY(quiz_id) REFERENCES quiz(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS answer (
|
||||||
|
id bigserial UNIQUE NOT NULL PRIMARY KEY,
|
||||||
|
content text,
|
||||||
|
quiz_id bigint NOT NULL REFERENCES quiz(id),
|
||||||
|
question_id bigint NOT NULL REFERENCES question(id),
|
||||||
|
fingerprint varchar(1024),
|
||||||
|
session varchar(20),
|
||||||
|
created_at timestamp DEFAULT CURRENT_TIMESTAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS privileges (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
privilegeID VARCHAR(50),
|
||||||
|
account_id UUID,
|
||||||
|
privilege_name VARCHAR(255),
|
||||||
|
amount INT,
|
||||||
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
FOREIGN KEY (account_id) REFERENCES account (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Create indexes
|
||||||
|
CREATE INDEX IF NOT EXISTS active ON question(deleted) WHERE deleted=false;
|
||||||
|
CREATE INDEX IF NOT EXISTS relation ON question(quiz_id DESC);
|
||||||
|
CREATE INDEX IF NOT EXISTS required ON question(required DESC);
|
||||||
|
CREATE INDEX IF NOT EXISTS questiontype ON question(questiontype);
|
||||||
|
CREATE INDEX IF NOT EXISTS active ON quiz(deleted, archived, status) WHERE deleted = false AND archived = false AND status = 'start';
|
||||||
|
CREATE INDEX IF NOT EXISTS timeouted ON quiz(due_to DESC) WHERE deleted = false AND due_to <> 0 AND status <> 'timeout';
|
||||||
|
CREATE INDEX IF NOT EXISTS groups ON quiz(super) WHERE super = true;
|
||||||
|
CREATE INDEX IF NOT EXISTS birthtime ON quiz(created_at DESC);
|
||||||
|
CREATE INDEX IF NOT EXISTS subquizes ON quiz(group_id DESC) WHERE group_id <> 0;
|
1
schema/000002_init.down.sql
Normal file
1
schema/000002_init.down.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE answer DROP COLUMN IF EXISTS result;
|
1
schema/000002_init.up.sql
Normal file
1
schema/000002_init.up.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE answer ADD COLUMN result BOOLEAN DEFAULT FALSE;
|
1
schema/000003_init.down.sql
Normal file
1
schema/000003_init.down.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE quiz DROP COLUMN IF EXISTS sessions_count;
|
1
schema/000003_init.up.sql
Normal file
1
schema/000003_init.up.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE quiz ADD COLUMN sessions_count integer;
|
2
schema/000004_init.down.sql
Normal file
2
schema/000004_init.down.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE quiz DROP COLUMN IF EXISTS new;
|
||||||
|
ALTER TABLE quiz DROP COLUMN IF EXISTS deleted;
|
2
schema/000004_init.up.sql
Normal file
2
schema/000004_init.up.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE answer ADD COLUMN new BOOLEAN DEFAULT TRUE;
|
||||||
|
ALTER TABLE answer ADD COLUMN deleted BOOLEAN DEFAULT FALSE;
|
2
schema/000005_init.down.sql
Normal file
2
schema/000005_init.down.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE answer DROP COLUMN IF EXISTS email;
|
||||||
|
DROP INDEX IF EXISTS answer_email_unique_idx;
|
2
schema/000005_init.up.sql
Normal file
2
schema/000005_init.up.sql
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE answer ADD COLUMN email VARCHAR(50) NOT NULL DEFAULT '';
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS answer_email_unique_idx ON answer (quiz_id, email) WHERE email <> '';
|
Loading…
Reference in New Issue
Block a user