数据库配置

XYGo Admin 2025-02-20 66 次阅读

MySQL 与 PostgreSQL 双数据库配置指南

数据库配置

XYGo Admin 同时支持 MySQL 和 PostgreSQL,通过配置文件切换。

连接配置

编辑 server/manifest/config/config.yaml

PostgreSQL

yaml 复制代码
database:
  default:
    link: "pgsql:postgres:123456@tcp(127.0.0.1:5432)/xygoadmin"
    debug: true
    prefix: "xy_"

MySQL

yaml 复制代码
database:
  default:
    link: "mysql:root:123456@tcp(127.0.0.1:3306)/xygoadmin?charset=utf8mb4&parseTime=true&loc=Local"
    debug: true
    prefix: "xy_"

建表脚本

项目提供两套建表脚本:

文件 数据库
mysql_install.sql MySQL
pgsql_install.sql PostgreSQL

CLI 配置

代码生成器也需要配置数据库连接,编辑 server/hack/config.yaml

yaml 复制代码
gfcli:
  gen:
    dao:
      # PostgreSQL
      link: "pgsql:postgres:123456@tcp(127.0.0.1:5432)/xygoadmin"
      # MySQL
      # link: "mysql:root:123456@tcp(127.0.0.1:3306)/xygoadmin"
      removePrefix: "xy_"
      jsonCase: "CamelLower"

方言适配

项目通过 library/dbdialect/ 包处理两种数据库的差异:

差异点 MySQL PostgreSQL
自增主键 AUTO_INCREMENT SERIAL / BIGSERIAL
布尔类型 TINYINT(1) BOOLEAN
JSON 类型 JSON JSONB
字符串引号 反引号 ` 双引号 "
时间戳 BIGINT BIGINT

代码生成器在创建表和同步字段时会自动适配当前数据库类型。

注意事项

  1. 两种数据库不能混用,选定后保持一致
  2. 修改数据库类型后需要重新导入对应的建表脚本
  3. gf gen dao 会根据 hack/config.yaml 中的连接自动识别数据库类型
  4. PostgreSQL 的 bigint 在 Go 中映射为 uint64(通过 typeMapping 配置)