From 70c033aabe983ba3b96871476d90bda649e37de2 Mon Sep 17 00:00:00 2001 From: Anton Shepilov Date: Sat, 13 Jan 2024 23:49:34 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=9F=20Support=20for=20PostgreSQL=20(#3?= =?UTF-8?q?06)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/backend.yml | 2 +- .run/Run all e2e [MongoDB].run.xml | 2 +- .run/Run all e2e [OpenSearch].run.xml | 27 + .run/TDrive[Postgres] local.run.xml | 27 + .../config/custom-environment-variables.json | 8 + tdrive/backend/node/package-lock.json | 996 +++++++++++++----- tdrive/backend/node/package.json | 9 +- .../database/services/connector-factory.ts | 3 + .../services/database/services/index.ts | 8 +- .../orm/connectors/abstract-connector.ts | 14 +- .../orm/connectors/cassandra/cassandra.ts | 7 +- .../database/services/orm/connectors/index.ts | 12 +- .../orm/connectors/mongodb/mongodb.ts | 10 +- .../postgres/postgres-data-transform.ts | 156 +++ .../postgres/postgres-query-builder.ts | 185 ++++ .../orm/connectors/postgres/postgres.ts | 283 +++++ .../services/database/services/orm/manager.ts | 91 +- .../services/orm/repository/repository.ts | 8 +- .../services/database/services/orm/types.ts | 2 +- .../services/database/services/orm/utils.ts | 13 +- .../storage/connectors/local/service.ts | 5 + .../core/platform/services/storage/index.ts | 3 +- .../src/services/applications-api/index.ts | 11 +- .../documents/web/controllers/documents.ts | 8 - .../services/user/entities/company_user.ts | 16 - .../src/services/user/services/companies.ts | 3 - .../workspaces/entities/workspace_user.ts | 3 - .../test/e2e/common/entities/mock_entities.ts | 2 +- .../node/test/e2e/users/users.search.spec.ts | 2 +- .../e2e/workspaces/workspace-users.spec.ts | 4 - .../postgres/postgres-data-transform.test.ts | 173 +++ .../postgres/postgres-query-builder.test.ts | 149 +++ .../postgres/postgres.debug.test.ts | 67 ++ .../orm/connectors/postgres/postgres.test.ts | 63 ++ .../services/orm/connectors/postgres/utils.ts | 61 ++ .../database/services/orm/manager.test.ts | 95 ++ .../docker-compose.dev.tests.opensearch.yml | 25 +- tdrive/docker-compose.tests.postgresql.yml | 13 + 38 files changed, 2202 insertions(+), 364 deletions(-) create mode 100644 .run/Run all e2e [OpenSearch].run.xml create mode 100644 .run/TDrive[Postgres] local.run.xml create mode 100644 tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/postgres/postgres-data-transform.ts create mode 100644 tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/postgres/postgres-query-builder.ts create mode 100644 tdrive/backend/node/src/core/platform/services/database/services/orm/connectors/postgres/postgres.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/connectors/postgres/postgres-data-transform.test.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/connectors/postgres/postgres-query-builder.test.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/connectors/postgres/postgres.debug.test.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/connectors/postgres/postgres.test.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/connectors/postgres/utils.ts create mode 100644 tdrive/backend/node/test/unit/core/services/database/services/orm/manager.test.ts create mode 100644 tdrive/docker-compose.tests.postgresql.yml diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 7d4783de..5ec9d517 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -24,7 +24,7 @@ jobs: - name: e2e-mongo-test-clean run: cd tdrive && docker-compose -f docker-compose.tests.yml stop - name: e2e-opensearch-test - run: cd tdrive && docker-compose -f docker-compose.dev.tests.opensearch.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=opensearch -e DB_DRIVER=mongodb -e PUBSUB_TYPE=local node npm run test:all + run: cd tdrive && docker-compose -f docker-compose.dev.tests.opensearch.yml run -e NODE_OPTIONS=--unhandled-rejections=warn -e SEARCH_DRIVER=opensearch -e DB_DRIVER=postgres -e PUBSUB_TYPE=local node npm run test:all - name: e2e-opensearch-test-clean run: cd tdrive && docker-compose -f docker-compose.dev.tests.opensearch.yml stop - name: e2e-cassandra-test diff --git a/.run/Run all e2e [MongoDB].run.xml b/.run/Run all e2e [MongoDB].run.xml index c0ac2a18..359d59bc 100644 --- a/.run/Run all e2e [MongoDB].run.xml +++ b/.run/Run all e2e [MongoDB].run.xml @@ -3,7 +3,7 @@ - + diff --git a/.run/Run all e2e [OpenSearch].run.xml b/.run/Run all e2e [OpenSearch].run.xml new file mode 100644 index 00000000..1e1a1174 --- /dev/null +++ b/.run/Run all e2e [OpenSearch].run.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.run/TDrive[Postgres] local.run.xml b/.run/TDrive[Postgres] local.run.xml new file mode 100644 index 00000000..bc30882b --- /dev/null +++ b/.run/TDrive[Postgres] local.run.xml @@ -0,0 +1,27 @@ + + + + + +