dbx 是一个用 Go 写的数据库管理工具,项目已经在 https://github.com/swiftcarrot/dbx 开源,入手超级简单。
读取现有数据库
import (
_ "github.com/lib/pq"
"github.com/swiftcarrot/dbx/postgresql"
"github.com/swiftcarrot/dbx/schema"
)
db, err := sql.Open("postgres", "postgres://postgres:postgres@localhost:5432/dbx_test?sslmode=disable")
pg := postgresql.New()
source, err := pg.Inspect(db)
从零开始用代码创建数据库结构:
target := schema.NewSchema()
target.CreateTable("user", func(t *schema.Table) {
t.Column("name", "text", schema.NotNull)
t.Index("users_name_idx", []string{"name"})
})
dbx 还能比较两个 schema ,生成数据库改动的 SQL:
changes, err := schema.Diff(source, target)
for _, change := range changes {
sql, err := pg.GenerateSQL(change)
_, err := db.Exec(sql)
}
因为 postgres 功能多,所以先支持了 postgres 。mysql 也已经照着实现了,不过还有些 bug 在修。大部分代码是用 Claude 3.7 + GitHub Copilot 的 Agent 模式写的,感兴趣可以看看.github
文件夹下面的指导文件。
我发现这个项目特别适合用语言模型,语言模型写 SQL 很溜,写测试来修 bug 也很简单。想听听大家的反馈,聊聊你们希望一个新的数据库管理项目有哪些功能。这个项目所有功能会一直开源免费,我也想试试 AI 编程还能玩出啥花样。欢迎在评论里聊聊你的想法,或者去 GitHub 仓库 https://github.com/swiftcarrot/dbx 开 issue !
1
mumbler 85 天前
解决什么痛点了
|