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:
parent
c454d8e253
commit
79c6c1de93
4 changed files with 9 additions and 7 deletions
8
.github/workflows/integration-test.yml
vendored
8
.github/workflows/integration-test.yml
vendored
|
@ -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
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
"files": [
|
||||
"lib",
|
||||
"alterations",
|
||||
"alterations-js",
|
||||
"tables"
|
||||
],
|
||||
"publishConfig": {
|
||||
|
|
Loading…
Add table
Reference in a new issue