From 6690e8edf2c252d365926bd940182443413f6a4d Mon Sep 17 00:00:00 2001 From: Mert <101130780+mertalev@users.noreply.github.com> Date: Mon, 19 Feb 2024 21:32:55 -0500 Subject: [PATCH] fix(docs): document vector extension env variable (#7220) --- docs/docs/install/environment-variables.md | 19 +++++++++++-------- .../src/domain/database/database.service.ts | 2 +- server/src/domain/domain.config.ts | 2 +- server/src/infra/database.config.ts | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/docs/install/environment-variables.md b/docs/docs/install/environment-variables.md index 09fadbf707..48d7219d1d 100644 --- a/docs/docs/install/environment-variables.md +++ b/docs/docs/install/environment-variables.md @@ -60,14 +60,17 @@ These environment variables are used by the `docker-compose.yml` file and do **N ## Database -| Variable | Description | Default | Services | -| :------------ | :---------------- | :---------: | :-------------------- | -| `DB_URL` | Database URL | | server, microservices | -| `DB_HOSTNAME` | Database Host | `localhost` | server, microservices | -| `DB_PORT` | Database Port | `5432` | server, microservices | -| `DB_USERNAME` | Database User | `postgres` | server, microservices | -| `DB_PASSWORD` | Database Password | `postgres` | server, microservices | -| `DB_DATABASE` | Database Name | `immich` | server, microservices | +| Variable | Description | Default | Services | +| :---------------------------------- | :------------------------------------------------------------ | :----------: | :-------------------- | +| `DB_URL` | Database URL | | server, microservices | +| `DB_HOSTNAME` | Database Host | `localhost` | server, microservices | +| `DB_PORT` | Database Port | `5432` | server, microservices | +| `DB_USERNAME` | Database User | `postgres` | server, microservices | +| `DB_PASSWORD` | Database Password | `postgres` | server, microservices | +| `DB_DATABASE` | Database Name | `immich` | server, microservices | +| `DB_VECTOR_EXTENSION`\*1 | Database Vector Extension (one of [`pgvector`, `pgvecto.rs`]) | `pgvecto.rs` | server, microservices | + +\*1: This setting cannot be changed after the server has successfully started up :::info diff --git a/server/src/domain/database/database.service.ts b/server/src/domain/database/database.service.ts index 5ea9e1a474..8cd08acd75 100644 --- a/server/src/domain/database/database.service.ts +++ b/server/src/domain/database/database.service.ts @@ -72,7 +72,7 @@ export class DatabaseService { In this case, please run 'CREATE EXTENSION IF NOT EXISTS ${this.vectorExt}' manually as a superuser. See https://immich.app/docs/guides/database-queries for how to query the database. - Alternatively, if your Postgres instance has ${extName[otherExt]}, you may use this instead by setting the environment variable 'VECTOR_EXTENSION=${otherExt}'. + Alternatively, if your Postgres instance has ${extName[otherExt]}, you may use this instead by setting the environment variable 'DB_VECTOR_EXTENSION=${otherExt}'. Note that switching between the two extensions after a successful startup is not supported. The exception is if your version of Immich prior to upgrading was 1.90.2 or earlier. In this case, you may set either extension now, but you will not be able to switch to the other extension following a successful startup. diff --git a/server/src/domain/domain.config.ts b/server/src/domain/domain.config.ts index ed1283ec2f..b77fd74126 100644 --- a/server/src/domain/domain.config.ts +++ b/server/src/domain/domain.config.ts @@ -18,12 +18,12 @@ export const immichAppConfig: ConfigModuleOptions = { DB_PASSWORD: WHEN_DB_URL_SET, DB_DATABASE_NAME: WHEN_DB_URL_SET, DB_URL: Joi.string().optional(), + DB_VECTOR_EXTENSION: Joi.string().optional().valid('pgvector', 'pgvecto.rs').default('pgvecto.rs'), LOG_LEVEL: Joi.string() .optional() .valid(...Object.values(LogLevel)), MACHINE_LEARNING_PORT: Joi.number().optional(), MICROSERVICES_PORT: Joi.number().optional(), SERVER_PORT: Joi.number().optional(), - VECTOR_EXTENSION: Joi.string().optional().valid('pgvector', 'pgvecto.rs').default('pgvecto.rs'), }), }; diff --git a/server/src/infra/database.config.ts b/server/src/infra/database.config.ts index 93926e51cf..773e79f8a0 100644 --- a/server/src/infra/database.config.ts +++ b/server/src/infra/database.config.ts @@ -30,4 +30,4 @@ export const databaseConfig: PostgresConnectionOptions = { export const dataSource = new DataSource(databaseConfig); export const vectorExt = - process.env.VECTOR_EXTENSION === 'pgvector' ? DatabaseExtension.VECTOR : DatabaseExtension.VECTORS; + process.env.DB_VECTOR_EXTENSION === 'pgvector' ? DatabaseExtension.VECTOR : DatabaseExtension.VECTORS;