Files
2026-09-19 16:35:35 +08:00

2.5 KiB
Raw Permalink Blame History

数据库切换 / Database

支持 4 种数据库,通过 start.sh 关键字选择(四选一,默认 mysql):mysqlpostgresql(别名 pg)、oraclekingbase(别名 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 BYTEDESKPDB
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/mrcpcall)仅支持 mysql / postgresql./start.sh call oracle 会直接报错
  • Kingbase 需要 license 文件(默认取 deploy/kingbase/ 下的专业版 dat,可在 .env 覆盖)
  • 切换数据库不会迁移数据;各数据库使用独立数据卷(如 bytedesk_mysql_data / bytedesk_postgresql_data