From 1a8fd94858fb73fdab6231b14ad19caffb03b3cd Mon Sep 17 00:00:00 2001 From: MaKarin Date: Sat, 4 Apr 2026 10:04:47 +0300 Subject: [PATCH] implement db-seed --- docker-compose.yml | 24 ++++++++++++ equipment-import.sql | 92 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 equipment-import.sql diff --git a/docker-compose.yml b/docker-compose.yml index ae3cffe..60ded89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,6 +56,28 @@ services: - toir-light - proxy + db-seed: + image: postgres:16 + container_name: toir-light-db-seed + restart: "no" + depends_on: + postgres: + condition: service_healthy + environment: + PGPASSWORD: ${POSTGRES_PASSWORD:-change-me} + POSTGRES_USER: ${POSTGRES_USER:-postgres} + POSTGRES_DB: ${POSTGRES_DB:-toir} + volumes: + - ./equipment-import.sql:/seed/equipment-import.sql:ro + command: + [ + "sh", + "-c", + "psql -h postgres -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\" -v ON_ERROR_STOP=1 -f /seed/equipment-import.sql", + ] + networks: + - toir-light + client: build: context: ./client @@ -70,6 +92,8 @@ services: depends_on: server: condition: service_healthy + db-seed: + condition: service_completed_successfully healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1/healthz >/dev/null 2>&1 || exit 1"] interval: 15s diff --git a/equipment-import.sql b/equipment-import.sql new file mode 100644 index 0000000..328dd96 --- /dev/null +++ b/equipment-import.sql @@ -0,0 +1,92 @@ +-- Generated from /Users/yyy/Downloads/СКПБ бр. № 9.xlsx +-- Mapping: Наименование -> name, Заводской номер -> serialNumber, Дата изготовления -> dateOfInspection, Дата поверки -> commissionedAt +-- Date normalization rules: +-- * Excel serial numbers converted to ISO dates +-- * bare year like 2020 converted to YYYY-01-01 +-- * date ranges like 12.12.2025-11.12.2027 use the first date +-- * non-date text left as NULL in date fields; raw values preserved below as comments where relevant +BEGIN; +DELETE FROM "Equipment" +WHERE "id" IN ( + '8f1e0982-18de-4bfb-b481-455673884bb2', + 'ef0d6b72-6e17-43f9-955f-2e9c63875c51', + 'cdda593b-011b-492f-a235-1b7ac37e1e30', + 'e741ec42-3c7f-4e42-bec9-896b68024981', + '49c08799-b2e1-4845-8aec-c9afd4cf0bd3', + 'd67208e2-93a3-4aff-9b1e-227be28fe38f', + '6c841f0f-4054-4ad3-8b1c-64261702647c', + '5cbade71-0c1f-4a4d-ab4b-a9ee065bbdf5', + '62e75150-70e7-4527-a0a5-edef172a06d9', + '53565d24-91ee-4426-960d-66088aa6c1ae', + '85b9f17c-df54-4099-b453-8b5d15ce64f2', + '6b57fd58-2f60-4982-a3c2-72bc5d634298', + 'af787239-6217-43c0-a258-435db9be46db', + 'b03850eb-e6cf-4053-85f7-681b6f2516e0', + '8b2b2640-97b0-4d72-82ed-dc6c3d8b78c6', + 'cb1e9b26-ad0c-4115-beca-37f882a4c792', + 'c9009cf8-24f3-44ba-b881-145c20d2d6db', + '16e24e20-e49c-49af-940d-5c248f386abc', + '402312f7-7a49-4222-a333-8cdea2a51c48', + 'ea724126-3f1e-40ee-a92b-aa7110cb1dbd', + '040eb936-1155-4ea1-90e5-a0f8b36d1f4a', + '70e8c028-e470-4480-bbcb-73b000c6aab9', + '6c358390-ece0-41f1-88d9-84edb5a0c40c', + '22f82db2-6fb1-4c54-b429-d889ce6aa45f', + '91bb8600-2252-4bfe-9d65-f566c52c4e14', + '67c6004d-fb46-4b00-aae5-924f22d8357c' +) +OR "serialNumber" IN ( + '520110 А 25', + '81', + '5100427 А 25', + '22410032', + '6350237', + '2558277', + '142435', + '22410042', + '3107', + '5836', + '10644', + '5885', + '3673', + '15444', + '3259', + '1400', + '9779', + '9771', + '9754', + '9746', + '9766', + '9769', + '9780', + '9748', + '9764', + '10438' +); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('8f1e0982-18de-4bfb-b481-455673884bb2', 'Счетчик НОРМА СТВ 50Г', '520110 А 25', '2025-11-10'::timestamp, '2025-11-10'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('ef0d6b72-6e17-43f9-955f-2e9c63875c51', 'ВысотаА - LITE', '81', '2025-07-01'::timestamp, '2025-07-01'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('cdda593b-011b-492f-a235-1b7ac37e1e30', 'Счетчик НОРМА СТВ 50 Х', '5100427 А 25', '2025-09-16'::timestamp, '2025-09-20'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('e741ec42-3c7f-4e42-bec9-896b68024981', 'ДМ 2005CrY2 0-400 kgf/cm', '22410032', NULL, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('49c08799-b2e1-4845-8aec-c9afd4cf0bd3', 'М-ЗВУКсУХЛ1 0-250 kgf/cm', '6350237', NULL, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('d67208e2-93a3-4aff-9b1e-227be28fe38f', 'ДМ 8008-Вуф kgf/cm', '2558277', '2018-08-01'::timestamp, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('6c841f0f-4054-4ad3-8b1c-64261702647c', 'ДМ 2005Cr1EXT3 0-40 Mpa', '142435', NULL, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('5cbade71-0c1f-4a4d-ab4b-a9ee065bbdf5', 'ДМ 2005CrY2 0-400 kgf/cm', '22410042', NULL, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('62e75150-70e7-4527-a0a5-edef172a06d9', 'Уровнемер У-150', '3107', '2020-01-01'::timestamp, '2025-12-12'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('53565d24-91ee-4426-960d-66088aa6c1ae', 'Датчик нагрузки ДН-130 25 т.', '5836', '2015-01-01'::timestamp, '2025-11-21'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('85b9f17c-df54-4099-b453-8b5d15ce64f2', 'Датчик нагрузки ДН-130 10 т.с.', '10644', '2022-01-01'::timestamp, '2025-11-21'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('6b57fd58-2f60-4982-a3c2-72bc5d634298', 'Преобразователь давления ТП-140Д', '5885', '2019-01-01'::timestamp, '2025-07-17'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('af787239-6217-43c0-a258-435db9be46db', 'Преобразователь давления ТП-140Д', '3673', '2016-01-01'::timestamp, '2026-02-26'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('b03850eb-e6cf-4053-85f7-681b6f2516e0', 'СКПБ ДЭЛ-150 (ГАЗ) (ПЛА150.104.025.000)', '15444', '2024-11-27'::timestamp, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('8b2b2640-97b0-4d72-82ed-dc6c3d8b78c6', 'Модуль коммутации МК-140 (ГАЗ)', '3259', '2020-12-24'::timestamp, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('cb1e9b26-ad0c-4115-beca-37f882a4c792', 'Датчик положения', '1400', NULL, NULL, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('c9009cf8-24f3-44ba-b881-145c20d2d6db', 'Газоанализатор ГСВ-1', '9779', '2024-07-14'::timestamp, '2025-11-14'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('16e24e20-e49c-49af-940d-5c248f386abc', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9771', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('402312f7-7a49-4222-a333-8cdea2a51c48', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9754', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('ea724126-3f1e-40ee-a92b-aa7110cb1dbd', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9746', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('040eb936-1155-4ea1-90e5-a0f8b36d1f4a', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9766', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('70e8c028-e470-4480-bbcb-73b000c6aab9', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9769', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('6c358390-ece0-41f1-88d9-84edb5a0c40c', 'Газоанализатор ГСВ-1', '9780', '2024-07-14'::timestamp, '2025-11-14'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('22f82db2-6fb1-4c54-b429-d889ce6aa45f', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9748', '2024-11-27'::timestamp, '2025-11-14'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('91bb8600-2252-4bfe-9d65-f566c52c4e14', 'Пост ГСВ-1(И) с оповещателем комбинированным ОК-150', '9764', '2024-11-27'::timestamp, '2025-11-11'::timestamp, 'Active'); +INSERT INTO "Equipment" ("id", "name", "serialNumber", "dateOfInspection", "commissionedAt", "status") VALUES ('67c6004d-fb46-4b00-aae5-924f22d8357c', 'Измерительный комплекс (СКПБ) ДЭЛ-150', '10438', NULL, NULL, 'Active'); +COMMIT;