mirror of https://github.com/aldy505/bob.git
docs: thorough documentation
This commit is contained in:
parent
43eb8f4234
commit
6186e8aa9a
78
README.md
78
README.md
|
@ -12,7 +12,83 @@ import "github.com/aldy505/bob"
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
It's not ready for production yet. But, the API is probably close to how you'd do things on Squirrel. This is an example for using with pgx.
|
It's not ready for large-scale production yet (I've already using it on one of my projects). But, the API is probably close to how you'd do things on Squirrel.
|
||||||
|
|
||||||
|
### Create a table
|
||||||
|
|
||||||
|
```go
|
||||||
|
import "github.com/aldy505/bob"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Note that CREATE TABLE don't return args params.
|
||||||
|
sql, _, err := bob.
|
||||||
|
CreateTable("tableName").
|
||||||
|
// The first parameter is the column's name.
|
||||||
|
// The second parameters and so on forth are extras.
|
||||||
|
StringColumn("id", "NOT NULL", "PRIMARY KEY", "AUTOINCREMENT").
|
||||||
|
StringColumn("email", "NOT NULL", "UNIQUE").
|
||||||
|
// See the list of available column definition type through pkg.go.dev or scroll down below.
|
||||||
|
TextColumn("password").
|
||||||
|
ToSql()
|
||||||
|
if err != nil {
|
||||||
|
// handle your error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Another builder of `bob.CreateTableIfNotExists()` is also available.
|
||||||
|
|
||||||
|
### Check if a table exists
|
||||||
|
|
||||||
|
```go
|
||||||
|
func main() {
|
||||||
|
sql, args, err := bob.HasTable("users").ToSql()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Check if a column exists
|
||||||
|
|
||||||
|
```go
|
||||||
|
func main() {
|
||||||
|
sql, args, err := bob.HasColumn("email").ToSql()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Placeholder format
|
||||||
|
|
||||||
|
Default placeholder is a question mark (MySQL-like). If you want to change it, simply use something like this:
|
||||||
|
|
||||||
|
```go
|
||||||
|
func main() {
|
||||||
|
// Option 1
|
||||||
|
sql, args, err := bob.HasTable("users").PlaceholderFormat(bob.Dollar).ToSql()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Option 2
|
||||||
|
sql, args, err = bob.HasTable("users").ToSql()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
correctPlaceholder := bob.ReplacePlaceholder(sql, bob.Dollar)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Available placeholder formats:
|
||||||
|
* `bob.Question` - `INSERT INTO "users" (name) VALUES (?)`
|
||||||
|
* `bob.Dollar` - `INSERT INTO "users" (name) VALUES ($1)`
|
||||||
|
* `bob.Colon` - `INSERT INTO "users" (name) VALUES (:1)`
|
||||||
|
* `bob.AtP` - `INSERT INTO "users" (name) VALUES (@p1)`
|
||||||
|
|
||||||
|
|
||||||
|
### With pgx (PostgreSQL)
|
||||||
|
|
||||||
```go
|
```go
|
||||||
import (
|
import (
|
||||||
|
|
Loading…
Reference in New Issue