2.5 KiB
2.5 KiB
数据库切换 / Database
支持 4 种数据库,通过 start.sh 关键字选择(四选一,默认 mysql):mysql、postgresql(别名 pg)、oracle、kingbase(别名 kingbase9)。
对应 compose 文件
| 关键字 | compose 文件(位于 compose/) | 镜像 | 默认宿主机端口 |
|---|---|---|---|
| mysql | compose/compose-mysql.yaml | mysql:latest | 13306 |
| postgresql / pg | compose/compose-postgresql.yaml | postgres:17 | 15432 |
| oracle | compose/compose-oracle.yaml | gvenzl/oracle-free:23-slim | 11521 |
| kingbase / kingbase9 | compose/compose-kingbase.yaml | kingbase V9(需 license) | 54321 |
使用示例
# PostgreSQL 中间件(源码开发)
./start.sh postgresql middleware
# Oracle 全栈
./start.sh oracle all
# Kingbase 全栈(.env 中需配置 KINGBASE_LICENSE_FILE 指向 ../../kingbase/ 下的 license.dat)
./start.sh kingbase all
# 切换后停止(关键字保持一致)
./stop.sh postgresql middleware down
自动建库
start.sh 会在启动后自动确保应用数据库存在(不存在则创建):
| 数据库 | 使用的变量 | 默认库名 |
|---|---|---|
| mysql | MYSQL_DATABASE / MYSQL_ROOT_PASSWORD | bytedesk |
| postgresql | POSTGRES_DB / POSTGRES_PASSWORD | bytedesk |
| oracle | ORACLE_DATABASE / ORACLE_PASSWORD / ORACLE_APP_USER / ORACLE_APP_USER_PASSWORD | BYTEDESK(PDB) |
| kingbase | KINGBASE_DATABASE / KINGBASE_DB_PASSWORD | bytedesk |
应用侧连接注入
bytedesk 应用的数据源连接(SPRING_DATASOURCE_URL/USERNAME/PASSWORD 等)由 start.sh 按所选数据库自动注入并写入 .env.app:
- 使用 mysql 时指向
bytedesk-mysql:3306 - 使用 postgresql 时指向
bytedesk-postgresql:5432(附带 postgres Driver) - 使用 oracle 时指向
bytedesk-oracle:1521/FREEPDB1 - 使用 kingbase 时指向
bytedesk-kingbase:54321(附带 PostgreSQLDialect、quartz/batch/flowable postgres 适配、关闭 liquibase)
如需完全接管,可在 .env 中显式配置 SPRING_DATASOURCE_*(优先级高于脚本注入),或通过 shell 环境变量覆盖。详见 readme.env.md。
限制
- freeswitch/mrcp(call)仅支持 mysql / postgresql:
./start.sh call oracle会直接报错 - Kingbase 需要 license 文件(默认取
deploy/kingbase/下的专业版 dat,可在 .env 覆盖) - 切换数据库不会迁移数据;各数据库使用独立数据卷(如 bytedesk_mysql_data / bytedesk_postgresql_data)