mirror of
https://github.com/beclab/Olares
synced 2026-04-21 21:47:56 +00:00
* 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>
2.7 KiB
2.7 KiB
| outline | description | ||
|---|---|---|---|
|
了解如何在 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获取对应值。 |