TORM-数据库支持


TORM支持多种主流数据库,提供统一的API接口,让您可以轻松在不同数据库间切换。

🗄️ 支持的数据库

数据库 驱动 状态 版本要求
MySQL mysql ✅ 完全支持 5.7+ / 8.0+
PostgreSQL postgres ✅ 完全支持 11+
SQLite sqlite ✅ 完全支持 3.8+
MongoDB mongodb ✅ 完全支持 4.4+
SQL Server sqlserver 🚧 基础支持 2017+

🔧 MySQL

配置示例

go 复制代码
config := &db.Config{
    Driver:   "mysql",
    Host:     "localhost",
    Port:     3306,
    Database: "myapp",
    Username: "root",
    Password: "password",
    Charset:  "utf8mb4",
    
    Options: map[string]string{
        "parseTime": "true",
        "loc":       "Local",
    },
}

特性支持

  • ✅ 完整的SQL支持
  • ✅ 事务处理
  • ✅ 连接池
  • ✅ JSON字段
  • ✅ 全文索引
  • ✅ 外键约束

🐘 PostgreSQL

配置示例

go 复制代码
config := &db.Config{
    Driver:   "postgres",
    Host:     "localhost",
    Port:     5432,
    Database: "myapp",
    Username: "postgres",
    Password: "password",
    SSLMode:  "disable",
}

特性支持

  • ✅ 完整的SQL支持
  • ✅ JSONB支持
  • ✅ 数组类型
  • ✅ 高级索引
  • ✅ 窗口函数

📁 SQLite

配置示例

go 复制代码
config := &db.Config{
    Driver:   "sqlite",
    Database: "app.db",
    
    Options: map[string]string{
        "foreign_keys": "on",
    },
}

特性支持

  • ✅ 轻量级部署
  • ✅ 零配置
  • ✅ 嵌入式应用
  • ⚠️ 并发限制

🍃 MongoDB

配置示例

go 复制代码
config := &db.Config{
    Driver:   "mongodb",
    Host:     "localhost",
    Port:     27017,
    Database: "myapp",
}

特性支持

  • ✅ 文档存储
  • ✅ 聚合管道
  • ✅ 索引支持
  • ✅ 事务支持(副本集)

🔄 数据库切换

TORM的设计允许您轻松在不同数据库间切换:

go 复制代码
// 开发环境 - SQLite
devConfig := &db.Config{
    Driver:   "sqlite",
    Database: "dev.db",
}

// 生产环境 - MySQL
prodConfig := &db.Config{
    Driver:   "mysql",
    Host:     "prod-db.example.com",
    Database: "myapp",
    Username: "app_user",
    Password: "secure_password",
}
相关推荐
程序员爱钓鱼13 小时前
Go break、continue、goto 详解
后端·面试·go
worxfr1 天前
Go 底层心智模型:并发、内存与闭包
go
2651940511264801 天前
08-告警并发与多Master同步
go·监控
程序员爱钓鱼1 天前
Go for 循环详解
后端·面试·go
程序员爱钓鱼2 天前
Go switch 详解
后端·面试·go
2651940511264802 天前
07-告警引擎与状态机
go·监控
NutShell Wang2 天前
Wails v3 Beta 实战:用显式对象模型重写你的第一个 Go 桌面应用
前端·人工智能·go·vibe coding
SoStraw3 天前
Go + webrpc 实战:人在外面,远程查家里 NAS 磁盘和目录
go·p2p·nas·cgo·json-rpc·webrpc·无公网ip
名字还没想好☜3 天前
Go 的 strings.Builder 实战:拼接性能、Grow 预分配与何时该用 bytes.Buffer
java·jvm·后端·golang·go
newerp3 天前
Go net/http 标准库基础
后端·程序员·go