title | summary | toc | |
---|---|---|---|
Build a Go App with CockroachDB |
Learn how to use CockroachDB from a simple Go application with the GORM ORM. |
false |
true |
This tutorial shows you how build a simple Go application with CockroachDB using a PostgreSQL-compatible driver or ORM. We've tested and can recommend the Go pq driver and the GORM ORM, so those are featured here.
{{site.data.alerts.callout_success}}For a more realistic use of GORM with CockroachDB, see our examples-orms
repository.{{site.data.alerts.end}}
Make sure you have already installed CockroachDB.
To install GORM, run the following command:
$ go get -u github.com/jinzhu/gorm
{% include app/common-steps.md %}
The following code uses the GORM ORM to map Go-specific objects to SQL operations. Specifically, db.AutoMigrate(&Account{})
creates an accounts
table based on the Account model, db.Create(&Account{})
inserts rows into the table, and db.Find(&accounts)
selects from the table so that balances can be printed.
Copy the code or download it directly.
{% include app/gorm-basic-sample.go %}
Then run the code:
$ go run gorm-basic-sample.go
The output should be:
Initial balances:
1 1000
2 250
To verify that the table and rows were created successfully, you can again use the built-in SQL client:
$ cockroach sql --insecure -e 'SHOW TABLES' --database=bank
+----------+
| Table |
+----------+
| accounts |
+----------+
(1 row)
$ cockroach sql --insecure -e 'SELECT id, balance FROM accounts' --database=bank
+----+---------+
| id | balance |
+----+---------+
| 1 | 1000 |
| 2 | 250 |
+----+---------+
(2 rows)
Read more about using the GORM ORM, or check out a more realistic implementation of GORM with CockroachDB in our examples-orms
repository.
You might also be interested in using a local cluster to explore the following core CockroachDB features: