Update installation doc (#2019)

* Update installation doc

* Update install scripts

* Update install scripts
This commit is contained in:
Charles Bochet
2023-10-14 13:43:45 +02:00
committed by GitHub
parent 77c88bda6e
commit 77729e4d4b
10 changed files with 445 additions and 733 deletions

View File

@ -20,15 +20,23 @@
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "./scripts/run-integration.sh",
"prisma:generate-client": "npx prisma generate --generator client && yarn prisma:generate-gql-select",
"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 && 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",
"prisma:seed": "npx prisma db seed",
"prisma:migrate": "npx prisma migrate deploy",
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js",
"typeorm:migrate": "yarn typeorm migration:run -- -d ./src/metadata/metadata.datasource.ts"
"typeorm:migrate": "yarn typeorm migration:run -- -d ./src/metadata/metadata.datasource.ts",
"database:setup": "npx ts-node ./scripts/setup-db.ts",
"database:migrate": "yarn prisma:migrate && yarn typeorm:migrate",
"database:generate": "yarn prisma:generate",
"database:seed": "yarn prisma:seed",
"database:reset": "yarn database:migrate && yarn database:generate && yarn database:seed"
},
"dependencies": {
"@apollo/server": "^4.7.3",

View File

@ -1,5 +1,7 @@
import { ConfigService } from '@nestjs/config';
import console from 'console';
import { config } from 'dotenv';
import { DataSource } from 'typeorm';
@ -13,18 +15,54 @@ export const connectionSource = new DataSource({
url: configService.get<string>('PG_DATABASE_URL'),
});
const performQuery = async (query: string, consoleDescription: string) => {
try {
await connectionSource.query(query);
console.log(`Performed '${consoleDescription}' successfully`);
} catch (err) {
console.error(`Failed to perform '${consoleDescription}':`, err);
}
};
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"');
}
await performQuery(
'CREATE SCHEMA IF NOT EXISTS "metadata"',
'create schema "metadata"',
);
await performQuery(
'CREATE EXTENSION IF NOT EXISTS pg_graphql',
'create extension pg_graphql',
);
await performQuery(
'CREATE EXTENSION IF NOT EXISTS "uuid-ossp"',
'create extension "uuid-ossp"',
);
await performQuery(
`
DROP FUNCTION IF EXISTS graphql;
CREATE FUNCTION graphql(
"operationName" text default null,
query text default null,
variables jsonb default null,
extensions jsonb default null
)
returns jsonb
language sql
as $$
select graphql.resolve(
query := query,
variables := coalesce(variables, '{}'),
"operationName" := "operationName",
extensions := extensions
);
$$;
`,
'create function graphql',
);
})
.catch((err) => {
console.error('Error during Data Source initialization:', err);