0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-03-10 22:22:45 -05:00

refactor: require database name in URL (#2198)

This commit is contained in:
Gao Sun 2022-10-19 15:38:56 +08:00 committed by GitHub
parent c454d8e253
commit 79c6c1de93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 7 deletions

View file

@ -75,7 +75,7 @@ jobs:
- name: Extract
working-directory: tests
run: |
npm run cli init -- -p ../logto --db postgres://postgres:postgres@localhost:5432 --no-oc --du ../logto.tar.gz
npm run cli init -- -p ../logto --db postgres://postgres:postgres@localhost:5432/postgres --no-oc --du ../logto.tar.gz
- name: Add mock connectors
working-directory: tests
@ -83,12 +83,10 @@ jobs:
npm run cli connector add @logto/connector-mock-sms @logto/connector-mock-email @logto/connector-mock-social -- -p ../logto
- name: Run Logto
working-directory: logto/packages/core
run: node . &
working-directory: logto/
run: npm start &
env:
INTEGRATION_TEST: true
NODE_ENV: production
DB_URL: postgres://postgres:postgres@localhost:5432
- name: Sleep for 5 seconds
run: sleep 5

View file

@ -1,5 +1,6 @@
import { SchemaLike } from '@logto/schemas';
import { convertToPrimitiveOrSql } from '@logto/shared';
import { assert } from '@silverhand/essentials';
import decamelize from 'decamelize';
import { createPool, parseDsn, sql, stringifyDsn } from 'slonik';
import { createInterceptors } from 'slonik-interceptor-preset';
@ -18,6 +19,7 @@ export const getDatabaseUrlFromConfig = async () =>
export const createPoolFromConfig = async () => {
const databaseUrl = await getDatabaseUrlFromConfig();
assert(parseDsn(databaseUrl).databaseName, new Error('Database name is required in URL'));
return createPool(databaseUrl, {
interceptors: createInterceptors(),

View file

@ -1,6 +1,6 @@
import { assertEnv } from '@silverhand/essentials';
import { assert, assertEnv } from '@silverhand/essentials';
import chalk from 'chalk';
import { createMockPool, createMockQueryResult, createPool } from 'slonik';
import { createMockPool, createMockQueryResult, createPool, parseDsn } from 'slonik';
import { createInterceptors } from 'slonik-interceptor-preset';
const createPoolByEnv = async (isTest: boolean) => {
@ -14,6 +14,7 @@ const createPoolByEnv = async (isTest: boolean) => {
try {
const databaseDsn = assertEnv(key);
assert(parseDsn(databaseDsn).databaseName, new Error('Database name is required in `DB_URL`'));
return await createPool(databaseDsn, { interceptors });
} catch (error: unknown) {

View file

@ -7,6 +7,7 @@
"files": [
"lib",
"alterations",
"alterations-js",
"tables"
],
"publishConfig": {