Olares/docs/zh/developer/develop/mw-integrate-with-pg.md
Meow33 776848d2e2
docs: add application environment variables (#2577)
* docs: updated installation env vars and runtime values references

* docs: fix content

* docs: update content

* Update table of contents, and refactored docs.

* Fixed capitalization.

* batch update to fix readability

* refactored declarative env var

* Updated translation.

* Updated based on suggestions.

* Updated based on suggestions.

---------

Co-authored-by: yajing wang <413741312@qq.com>
2026-03-05 17:52:22 +08:00

2.7 KiB
Raw Blame History

outline description
2
3
了解如何在 Olares 中将应用接入内置的 PostgreSQL 服务。

集成 PostgreSQL

通过在 OlaresManifest.yaml 中声明依赖,并将系统注入的配置值映射到容器的环境变量中,即可在应用中使用 Olares 提供的 PostgreSQL 服务。

:::info PostgreSQL 已安装 PostgreSQL 服务在 Olares 中默认已安装。 :::

配置 OlaresManifest.yaml

OlaresManifest.yaml 中添加所需的中间件配置。

  • 使用 scripts 字段指定数据库创建完成后需要执行的 SQL 脚本。
  • 使用 extensions 字段为数据库添加所需的扩展。

:::info 脚本中的变量注入 系统会提供两个变量 $databasename$dbusername,在执行脚本时由 Olares 应用运行时自动替换。 :::

示例

middleware:
  postgres:
    username: immich
    databases:
    - name: immich
      extensions:
      - vectors
      - earthdistance
      scripts:
      - BEGIN;
      - ALTER DATABASE $databasename SET search_path TO "$user", public, vectors;
      - ALTER SCHEMA vectors OWNER TO $dbusername;
      - COMMIT;

映射环境变量

在应用的部署 YAML 中,将系统注入的 .Values.postgres.* 字段映射为应用所需的环境变量。

示例

containers:
  - name: my-app
    env:
      # 在 OlaresManifest 中配置的数据库名称,
      # 对应 middleware.postgres.databases[i].name
      # 注意:将 <dbname> 替换为 Manifest 中定义的实际名称(例如 immich
      - name: DB_POSTGRESDB_DATABASE
        value: {{ .Values.postgres.databases.<dbname> }}
      
      # 主机地址
      - name: DB_POSTGRESDB_HOST
        value: {{ .Values.postgres.host }}
      
      # 端口
      - name: DB_POSTGRESDB_PORT
        value: "{{ .Values.postgres.port }}"
      
      # 用户名
      - name: DB_POSTGRESDB_USER
        value: {{ .Values.postgres.username }}
      
      # 密码
      - name: DB_POSTGRESDB_PASSWORD
        value: {{ .Values.postgres.password }}

PostgreSQL 变量参考

PostgreSQL 运行时变量会在部署过程中注入到 values.yaml 中。这些变量由系统统一管理,用户无法自行修改。

变量 类型 说明
.Values.postgres.host String PostgreSQL 主机地址。
.Values.postgres.port Number PostgreSQL 端口。
.Values.postgres.username String PostgreSQL 用户名。
.Values.postgres.password String PostgreSQL 密码。
.Values.postgres.databases Map<String,String> 请求的数据库集合,按数据库名为键。例如,若申请的数据库名为 app_db,可通过 .Values.postgres.databases.app_db获取对应值。