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",
}
相关推荐
程序员爱钓鱼14 小时前
Go语言实战案例-Redis实现用户登录次数限制
后端·google·go
lypzcgf1 天前
Coze源码分析-API授权-删除令牌-后端源码
数据库·人工智能·后端·系统架构·开源·go·安全架构
龙门吹雪1 天前
Goframe 框架下HTTP反向代理并支持MCP所需的SSE协议的实现
go·goframe·mcp·http 反向代理·sse协议
Joey_Chen1 天前
【Golang开发】Gin框架学习笔记——服务器的运行机制
后端·go
2302_799525741 天前
【Hot100】15.三数之和
算法·leetcode·go·hot100
dylan_QAQ1 天前
Java转Go全过程02-面向对象编程部分
java·后端·go
Joey_Chen2 天前
【Golang开发】快速入门Go——Goroutine和Channel
后端·go
岁忧2 天前
(LeetCode 每日一题) 36. 有效的数独 (数组、哈希表)
java·c++·算法·leetcode·go·散列表
dylan_QAQ2 天前
Java转Go全过程01-基础语法部分
java·后端·go
俞凡2 天前
Go/C++ 指针比较
c++·go