From 86eb9e0935f7de15c3b953c9f625429ddd480c44 Mon Sep 17 00:00:00 2001 From: Reinaldy Rafli Date: Fri, 9 Jul 2021 13:47:26 +0700 Subject: [PATCH] docs: examples for create table if not exists --- README.md | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3e45ae7..5055344 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,14 @@ [![Go Reference](https://pkg.go.dev/badge/github.com/aldy505/bob.svg)](https://pkg.go.dev/github.com/aldy505/bob) [![Go Report Card](https://goreportcard.com/badge/github.com/aldy505/bob)](https://goreportcard.com/report/github.com/aldy505/bob) ![GitHub](https://img.shields.io/github/license/aldy505/bob) [![CodeFactor](https://www.codefactor.io/repository/github/aldy505/bob/badge)](https://www.codefactor.io/repository/github/aldy505/bob) [![codecov](https://codecov.io/gh/aldy505/bob/branch/master/graph/badge.svg?token=Noeexg5xEJ)](https://codecov.io/gh/aldy505/bob) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/9b78970127c74c1a923533e05f65848d)](https://www.codacy.com/gh/aldy505/bob/dashboard?utm_source=github.com&utm_medium=referral&utm_content=aldy505/bob&utm_campaign=Badge_Grade) [![Build test](https://github.com/aldy505/bob/actions/workflows/build.yml/badge.svg)](https://github.com/aldy505/bob/actions/workflows/build.yml) [![Test and coverage](https://github.com/aldy505/bob/actions/workflows/coverage.yml/badge.svg)](https://github.com/aldy505/bob/actions/workflows/coverage.yml) -I really need a create table SQL builder, and I can't find one. So, like everything else, I made one. Heavily inspired by [Squirrel](https://github.com/Masterminds/squirrel) and [Knex](https://knexjs.org/). +I really need a create table SQL builder, and I can't find one. So, like everything else, I made one. Heavily inspired by [Squirrel](https://github.com/Masterminds/squirrel) and [Knex](https://knexjs.org/). And of course, I still use Squirrel for other types of queries (insert, select, and all), think this package as an extension for Squirrel. Oh, and of course, heavily inspired by Bob the Builder. +```go +import "github.com/aldy505/bob" +``` + ## 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. @@ -61,6 +65,32 @@ func main() { log.Fatal(err) } } + + // Create another table, this time with CREATE TABLE IF NOT EXISTS + sql, _, err := bob.CreateTableIfNotExists("inventory"). + Columns("id", "userID", "items", "quantity"). + Types("varchar(36)", "varchar(36)", "json", "int"). + Primary("id"). + ToSql() + if err != nil { + log.Fatal(err) + } + + inventoryQuery := strings.Split(sql, ";") + for i := range inventoryQuery { + _, err = db.Query(context.Background(), inventoryQuery[i]) + if err != nil { + log.Fatal(err) + } + } } } -``` \ No newline at end of file +``` + +## Contributing + +Contributions are always welcome! As long as you add a test for your changes. + +## License + +Bob is licensed under [MIT license](./LICENSE) \ No newline at end of file