|
1 | 1 | // These are the connection strings for the DB and the test DB.
|
2 | 2 | // NOTE: in production you probably want to add ?ssl=true to force SSL usage.
|
3 | 3 | // NOTE: these used to be in `.env` but now it is used by docker-compose we can't use expansions
|
4 |
| -process.env.DATABASE_URL = |
5 |
| - process.env.DATABASE_URL || |
6 |
| - `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`; |
7 |
| -process.env.AUTH_DATABASE_URL = |
8 |
| - process.env.AUTH_DATABASE_URL || |
9 |
| - `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`; |
10 |
| -process.env.SHADOW_DATABASE_URL = |
11 |
| - process.env.SHADOW_DATABASE_URL || |
12 |
| - `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`; |
13 |
| -process.env.SHADOW_AUTH_DATABASE_URL = |
14 |
| - process.env.SHADOW_AUTH_DATABASE_URL || |
15 |
| - `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`; |
| 4 | +const { resolve } = require("path"); |
| 5 | + |
| 6 | +function fixFilePaths(connectionString) { |
| 7 | + // Connection string may contain '../../data/amazon-rds-ca-cert.pem' or |
| 8 | + // similar; but we might be running it from somewhere other than `@app/*/` |
| 9 | + // (e.g. maybe `@app/*/dist/`). To solve this, we make the file path concrete |
| 10 | + // here. |
| 11 | + return connectionString.replace( |
| 12 | + /\.\.\/\.\.\/data\//g, |
| 13 | + resolve(__dirname, "../../data") |
| 14 | + ); |
| 15 | +} |
| 16 | + |
| 17 | +process.env.DATABASE_URL = process.env.DATABASE_URL |
| 18 | + ? fixFilePaths(process.env.DATABASE_URL) |
| 19 | + : `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`; |
| 20 | +process.env.AUTH_DATABASE_URL = process.env.AUTH_DATABASE_URL |
| 21 | + ? fixFilePaths(process.env.AUTH_DATABASE_URL) |
| 22 | + : `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`; |
| 23 | +process.env.SHADOW_DATABASE_URL = process.env.SHADOW_DATABASE_URL |
| 24 | + ? fixFilePaths(process.env.SHADOW_DATABASE_URL) |
| 25 | + : `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`; |
| 26 | +process.env.SHADOW_AUTH_DATABASE_URL = process.env.SHADOW_AUTH_DATABASE_URL |
| 27 | + ? fixFilePaths(process.env.SHADOW_AUTH_DATABASE_URL) |
| 28 | + : `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`; |
16 | 29 |
|
17 | 30 | // Always overwrite test database URL
|
18 | 31 | process.env.TEST_DATABASE_URL = `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_test`;
|
|
0 commit comments