Browse Source

Task/support DIRECT_URL for Prisma CLI and seeding to support connection poolers (#6882)

* Add support for DIRECT_URL

* Update changelog
pull/6883/head
Kenrick Tandrian 1 week ago
committed by GitHub
parent
commit
bd2ca4aacd
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      .config/prisma.ts
  2. 4
      CHANGELOG.md
  3. 5
      README.md
  4. 2
      prisma/seed.mts

2
.config/prisma.ts

@ -7,7 +7,7 @@ expand(config({ quiet: true }));
export default defineConfig({ export default defineConfig({
datasource: { datasource: {
url: process.env.DATABASE_URL ?? '' url: process.env.DIRECT_URL ?? process.env.DATABASE_URL
}, },
migrations: { migrations: {
path: join(__dirname, '..', 'prisma', 'migrations'), path: join(__dirname, '..', 'prisma', 'migrations'),

4
CHANGELOG.md

@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased ## Unreleased
### Added
- Added support for the `DIRECT_URL` environment variable to enable direct database connections
### Changed ### Changed
- Improved the pagination in the activities table of the holding detail dialog - Improved the pagination in the activities table of the holding detail dialog

5
README.md

@ -86,11 +86,12 @@ We provide official container images hosted on [Docker Hub](https://hub.docker.c
### Supported Environment Variables ### Supported Environment Variables
| Name | Type | Default Value | Description | | Name | Type | Default Value | Description |
| --------------------------- | --------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- | | --------------------------- | --------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens | | `ACCESS_TOKEN_SALT` | `string` | | A random string used as salt for access tokens |
| `API_KEY_COINGECKO_DEMO` | `string` (optional) |   | The _CoinGecko_ Demo API key | | `API_KEY_COINGECKO_DEMO` | `string` (optional) |   | The _CoinGecko_ Demo API key |
| `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key | | `API_KEY_COINGECKO_PRO` | `string` (optional) | | The _CoinGecko_ Pro API key |
| `DATABASE_URL` | `string` | | The database connection URL, e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}` | | `DATABASE_URL` | `string` | | The database connection URL. If using a connection pooler, use the pooled connection URL here. e.g. `postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}` |
| `DIRECT_URL` | `string` (optional) | | The direct database connection URL used by the _Prisma CLI_ (e.g. for schema migrations) and seeding, bypassing any connection poolers (falls back to `DATABASE_URL`) |
| `ENABLE_FEATURE_AUTH_TOKEN` | `boolean` (optional) | `true` | Enables authentication via security token | | `ENABLE_FEATURE_AUTH_TOKEN` | `boolean` (optional) | `true` | Enables authentication via security token |
| `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on | | `HOST` | `string` (optional) | `0.0.0.0` | The host where the Ghostfolio application will run on |
| `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) | | `JWT_SECRET_KEY` | `string` | | A random string used for _JSON Web Tokens_ (JWT) |

2
prisma/seed.mts

@ -2,7 +2,7 @@ import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '@prisma/client'; import { PrismaClient } from '@prisma/client';
const adapter = new PrismaPg({ const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL connectionString: process.env.DIRECT_URL ?? process.env.DATABASE_URL
}); });
const prisma = new PrismaClient({ adapter }); const prisma = new PrismaClient({ adapter });

Loading…
Cancel
Save