125 lines
2.8 KiB
Markdown
125 lines
2.8 KiB
Markdown
Создаем сеть:
|
|
docker network create app-network
|
|
|
|
Войти в БД:
|
|
docker exec -it postgres psql -U ncp_db -d no_copy_
|
|
|
|
Выполнить команду:
|
|
\du
|
|
|
|
Должен быть один пользователь:
|
|
List of roles
|
|
Role name | Attributes
|
|
-----------+------------------------------------------------------------
|
|
ncp_db | Superuser, Create role, Create DB, Replication, Bypass RLS
|
|
|
|
суперпользователь БД:
|
|
postgres/postgres
|
|
пользователь бд для бэка
|
|
ncp_db / ncpDbApp
|
|
|
|
Подключение к БД для приложения,если volume не существует :
|
|
|
|
Создаться автоматически.
|
|
|
|
Если уже существует volume :
|
|
|
|
docker exec -it postgres psql -U postgres -d postgres
|
|
|
|
CREATE USER ncp_db WITH PASSWORD 'ncpDbApp';
|
|
|
|
GRANT ALL PRIVILEGES ON DATABASE no_copy_ TO ncp_db;
|
|
|
|
\du
|
|
|
|
\q
|
|
|
|
-------
|
|
|
|
psql -U postgres -d no_copy_
|
|
|
|
-- база
|
|
|
|
GRANT CONNECT ON DATABASE no_copy_ TO ncp_db;
|
|
|
|
-- схема
|
|
|
|
GRANT USAGE ON SCHEMA public TO ncp_db;
|
|
|
|
-- существующие таблицы
|
|
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ncp_db;
|
|
|
|
-- существующие sequence (очень важно для id)
|
|
|
|
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO ncp_db;
|
|
|
|
-- будущие таблицы
|
|
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT ALL ON TABLES TO ncp_db;
|
|
|
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
GRANT ALL ON SEQUENCES TO ncp_db;
|
|
|
|
|
|
Зайти в контейнер:
|
|
docker exec -it {name} bash
|
|
|
|
------
|
|
|
|
Создать для сущности FileEntity sequence для икремента индетификатора
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS file_support_id_seq START 1;
|
|
|
|
ALTER TABLE file_entities
|
|
ALTER COLUMN support_id
|
|
SET DEFAULT nextval('file_support_id_seq');
|
|
|
|
----------
|
|
Раздать всем лимиты,у кого их нет
|
|
|
|
INSERT INTO protect_check (user_id, check_limit, count_checked, last_check_at, version)
|
|
SELECT
|
|
id as user_id,
|
|
10 as check_limit,
|
|
0 as count_checked,
|
|
NULL as last_check_at,
|
|
0 as version
|
|
FROM users
|
|
WHERE id NOT IN (SELECT user_id FROM protect_check);
|
|
|
|
--------
|
|
Обновлять констрейнты для file_entities
|
|
|
|
ALTER TABLE file_entities DROP CONSTRAINT file_entities_status_check;
|
|
|
|
ALTER TABLE file_entities
|
|
ADD CONSTRAINT file_entities_status_check
|
|
CHECK (status IN (
|
|
'ACTIVE',
|
|
'DELETED',
|
|
'PROCESSING',
|
|
'VIOLATION',
|
|
'CHECKED',
|
|
'ERROR',
|
|
'TEMP'
|
|
));
|
|
|
|
-------
|
|
Записи для лимитов поиска
|
|
|
|
INSERT INTO protect_check (user_id, limit_check, count_checked, last_check_at, version)
|
|
SELECT
|
|
u.id,
|
|
100, -- limit_check = 100
|
|
0, -- count_checked = 0
|
|
NULL, -- last_check_at = NULL
|
|
0 -- version = 0
|
|
FROM users u
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM protect_check pc
|
|
WHERE pc.user_id = u.id
|
|
);
|