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 149 天前 解决什么痛点了 |