Skip to content

Knex → gox/db

Knex query builders map to chainable methods on gox/db.

Connect

go
import (
    "github.com/sahilkhaire/gox/db"
    _ "github.com/jackc/pgx/v5/stdlib" // or modernc.org/sqlite for SQLite
)

d, err := db.Open("pgx", os.Getenv("DATABASE_URL"))

Queries

Knexgox/db
knex('users').select('*')d.Table("users").Select()
.where('id', id).Where("id", "=", id)
.where({ id, active: true }).WhereEq(map[string]any{...})
.orderBy('id', 'desc').OrderBy("id DESC")
.limit(10).offset(20).Limit(10).Offset(20)
.first().First(ctx, &row)
.then(rows => ...).Scan(ctx, &rows)

Writes

Knexgox/db
knex('users').insert({...})d.Insert(ctx, "users", map[string]any{...})
.update({...}).where({id})d.Update(ctx, "users", set, where)
.del().where({id})d.Delete(ctx, "users", where)
knex.transaction(async trx => ...)d.Transaction(ctx, func(tx *db.Tx) error { ... })

See examples/db-crud/main.go for a SQLite walkthrough.

MIT Licensed · Built for Node.js developers moving to Go