数据库配置
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 |
代码生成器在创建表和同步字段时会自动适配当前数据库类型。
注意事项
- 两种数据库不能混用,选定后保持一致
- 修改数据库类型后需要重新导入对应的建表脚本
gf gen dao会根据hack/config.yaml中的连接自动识别数据库类型- PostgreSQL 的
bigint在 Go 中映射为uint64(通过typeMapping配置)