From 77c88bda6ee8db99290af0c0b3b60fc6bc9bcc96 Mon Sep 17 00:00:00 2001 From: Ruslan <396223+khakimov@users.noreply.github.com> Date: Sat, 14 Oct 2023 16:48:55 +0700 Subject: [PATCH] Fix bug where "metadata" scheme was not created automatically (#1971) and (#1831) (#2018) * Fix bug where "metadata" scheme was not created automatically (#1971) * logging on * testing on render * render upadte * added setup-db.ts and updated package.json --- render.yaml | 23 ++++++++-------- server/package.json | 2 +- server/scripts/setup-db.ts | 31 ++++++++++++++++++++++ server/src/metadata/metadata.datasource.ts | 12 ++++++++- 4 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 server/scripts/setup-db.ts diff --git a/render.yaml b/render.yaml index c195b8405..77f4a5e03 100644 --- a/render.yaml +++ b/render.yaml @@ -1,15 +1,4 @@ services: -- type: web - name: front - env: docker - dockerfilePath: ./infra/prod/front/Dockerfile - autoDeploy: false - envVars: - - key: REACT_APP_SERVER_BASE_URL - fromService: - name: server - type: web - envVarKey: RENDER_EXTERNAL_URL - type: web name: server env: docker @@ -38,7 +27,17 @@ services: name: twenty-disk mountPath: /.local-storage sizeGB: 5 - +- type: web + name: front + env: docker + dockerfilePath: ./infra/prod/front/Dockerfile + autoDeploy: false + envVars: + - key: REACT_APP_SERVER_BASE_URL + fromService: + name: server + type: web + envVarKey: RENDER_EXTERNAL_URL databases: - name: twenty-db plan: starter diff --git a/server/package.json b/server/package.json index d3adbf20a..316528f77 100644 --- a/server/package.json +++ b/server/package.json @@ -24,7 +24,7 @@ "prisma:generate-gql-select": "node scripts/generate-model-select-map.js", "prisma:generate-nest-graphql": "npx prisma generate --generator nestgraphql", "prisma:generate": "yarn prisma:generate-client && yarn prisma:generate-gql-select && yarn prisma:generate-nest-graphql", - "prisma:migrate": "npx prisma migrate deploy && yarn typeorm migration:run -- -d ./src/metadata/metadata.datasource.ts", + "prisma:migrate": "npx prisma migrate deploy && npx ts-node ./scripts/setup-db.ts && yarn typeorm migration:run -- -d ./src/metadata/metadata.datasource.ts", "prisma:seed": "npx prisma db seed", "prisma:reset": "npx prisma migrate reset && yarn prisma:generate", "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js", diff --git a/server/scripts/setup-db.ts b/server/scripts/setup-db.ts new file mode 100644 index 000000000..36fa40839 --- /dev/null +++ b/server/scripts/setup-db.ts @@ -0,0 +1,31 @@ +import { ConfigService } from '@nestjs/config'; + +import { config } from 'dotenv'; +import { DataSource } from 'typeorm'; + +config(); + +const configService = new ConfigService(); + +export const connectionSource = new DataSource({ + type: 'postgres', + logging: false, + url: configService.get('PG_DATABASE_URL'), +}); + +connectionSource + .initialize() + .then(async () => { + await connectionSource.query(`CREATE SCHEMA IF NOT EXISTS "metadata"`); + const result = await connectionSource.query(` + SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'metadata' + `); + if (result.length > 0) { + console.log('Schema "metadata" created successfully'); + } else { + console.log('Failed to create schema "metadata"'); + } + }) + .catch((err) => { + console.error('Error during Data Source initialization:', err); + }); diff --git a/server/src/metadata/metadata.datasource.ts b/server/src/metadata/metadata.datasource.ts index 01cc07453..8ac654f5d 100644 --- a/server/src/metadata/metadata.datasource.ts +++ b/server/src/metadata/metadata.datasource.ts @@ -4,6 +4,11 @@ import { TypeOrmModuleOptions } from '@nestjs/typeorm'; import { DataSource, DataSourceOptions } from 'typeorm'; import { config } from 'dotenv'; +import { InitMetadataTables1695214465080 } from './migrations/1695214465080-InitMetadataTables'; +import { AlterFieldMetadataTable1695717691800 } from './migrations/1695717691800-alter-field-metadata-table'; +import { AddTargetColumnMap1696409050890 } from './migrations/1696409050890-add-target-column-map'; +import { MetadataNameLabelRefactoring1697126636202 } from './migrations/1697126636202-MetadataNameLabelRefactoring'; + config(); const configService = new ConfigService(); @@ -17,7 +22,12 @@ export const typeORMMetadataModuleOptions: TypeOrmModuleOptions = { synchronize: false, migrationsRun: true, migrationsTableName: '_typeorm_migrations', - migrations: [__dirname + '/migrations/**/*{.ts,.js}'], + migrations: [ + InitMetadataTables1695214465080, + AlterFieldMetadataTable1695717691800, + AddTargetColumnMap1696409050890, + MetadataNameLabelRefactoring1697126636202, + ], }; export const connectionSource = new DataSource(