Skip to content

Commit 80434b9

Browse files
authored
Merge pull request #133 from cockroachdb/version-bumps
Bump ORM versions
2 parents fb474a6 + c5f8915 commit 80434b9

File tree

11 files changed

+224
-90
lines changed

11 files changed

+224
-90
lines changed

go.mod

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ go 1.13
44

55
require (
66
github.com/cockroachdb/cockroach-go/v2 v2.0.6
7-
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec // indirect
8-
github.com/go-pg/pg/v9 v9.1.6
9-
github.com/go-sql-driver/mysql v1.5.0 // indirect
10-
github.com/jinzhu/gorm v1.9.12
11-
github.com/jinzhu/now v1.1.1 // indirect
7+
github.com/go-pg/pg/v10 v10.9.0
128
github.com/julienschmidt/httprouter v1.1.0
13-
github.com/lib/pq v1.4.0
9+
github.com/lib/pq v1.10.0
1410
github.com/pkg/errors v0.9.1
11+
gorm.io/driver/postgres v1.0.8
12+
gorm.io/gorm v1.21.6
1513
)

go.sum

Lines changed: 183 additions & 48 deletions
Large diffs are not rendered by default.

go/gopg/main.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import (
77
"net/http"
88

99
"github.com/cockroachdb/examples-orms/go/gopg/model"
10-
"github.com/go-pg/pg/v9"
11-
"github.com/go-pg/pg/v9/orm"
10+
"github.com/go-pg/pg/v10"
11+
"github.com/go-pg/pg/v10/orm"
1212
"github.com/julienschmidt/httprouter"
1313
)
1414

@@ -36,13 +36,18 @@ func setupDB(addr string) *pg.DB {
3636
panic(fmt.Sprintf("failed to parse addr URL %s: %v", addr, err))
3737
}
3838
db := pg.Connect(opt)
39+
40+
// Need to register OrderProduct before creating it because Order references
41+
// it.
42+
orm.RegisterTable((*model.OrderProduct)(nil))
43+
3944
for _, model := range []interface{}{
4045
(*model.Customer)(nil),
4146
(*model.Order)(nil),
4247
(*model.Product)(nil),
4348
(*model.OrderProduct)(nil),
4449
} {
45-
err := db.CreateTable(model, &orm.CreateTableOptions{
50+
err := db.Model(model).CreateTable(&orm.CreateTableOptions{
4651
IfNotExists: true,
4752
FKConstraints: true,
4853
})

go/gopg/model/models.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ type Order struct {
1111
ID int `json:"id,omitempty"`
1212
Subtotal float64 `json:"subtotal,string" pg:"type:'decimal(18,2)'"`
1313

14-
Customer Customer `json:"customer" pg:"fk:customer_id"`
14+
Customer Customer `json:"customer" pg:"fk:customer_id,rel:has-one"`
1515
CustomerID int `json:"-"`
1616

1717
Products []Product `json:"products" pg:"many2many:order_products"`
@@ -26,9 +26,9 @@ type Product struct {
2626

2727
// OrderProduct is a model in the "order_products" table.
2828
type OrderProduct struct {
29-
Order Order `json:"order" pg:"fk:order_id,on_delete:CASCADE"`
29+
Order Order `json:"order" pg:"fk:order_id,on_delete:CASCADE,rel:has-one"`
3030
OrderID int `json:"-"`
3131

32-
Product Product `json:"product" pg:"fk:product_id"`
32+
Product Product `json:"product" pg:"fk:product_id,rel:has-one"`
3333
ProductID int `json:"-"`
3434
}

go/gopg/server.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strconv"
88

99
"github.com/cockroachdb/examples-orms/go/gopg/model"
10-
"github.com/go-pg/pg/v9"
10+
"github.com/go-pg/pg/v10"
1111
"github.com/julienschmidt/httprouter"
1212
)
1313

@@ -65,7 +65,7 @@ func (s *Server) createCustomer(w http.ResponseWriter, r *http.Request, ps httpr
6565
return
6666
}
6767

68-
if err := s.db.Insert(&customer); err != nil {
68+
if _, err := s.db.Model(&customer).Insert(); err != nil {
6969
http.Error(w, err.Error(), errToStatusCode(err))
7070
} else {
7171
writeJSONResult(w, customer)
@@ -80,7 +80,7 @@ func (s *Server) getCustomer(w http.ResponseWriter, r *http.Request, ps httprout
8080
customer := model.Customer{
8181
ID: customerID,
8282
}
83-
if err := s.db.Select(&customer); err != nil {
83+
if err := s.db.Model(&customer).Select(); err != nil {
8484
http.Error(w, err.Error(), errToStatusCode(err))
8585
} else {
8686
writeJSONResult(w, customer)
@@ -99,7 +99,7 @@ func (s *Server) updateCustomer(w http.ResponseWriter, r *http.Request, ps httpr
9999
http.Error(w, err.Error(), errToStatusCode(err))
100100
}
101101
customer.ID = customerID
102-
if err := s.db.Update(&customer); err != nil {
102+
if _, err := s.db.Model(&customer).Update(); err != nil {
103103
http.Error(w, err.Error(), errToStatusCode(err))
104104
} else {
105105
writeJSONResult(w, customer)
@@ -140,7 +140,7 @@ func (s *Server) createProduct(w http.ResponseWriter, r *http.Request, ps httpro
140140
return
141141
}
142142

143-
if err := s.db.Insert(&product); err != nil {
143+
if _, err := s.db.Model(&product).Insert(); err != nil {
144144
http.Error(w, err.Error(), errToStatusCode(err))
145145
} else {
146146
writeJSONResult(w, product)
@@ -155,7 +155,7 @@ func (s *Server) getProduct(w http.ResponseWriter, r *http.Request, ps httproute
155155
product := model.Product{
156156
ID: productID,
157157
}
158-
if err := s.db.Select(&product); err != nil {
158+
if err := s.db.Model(&product).Select(); err != nil {
159159
http.Error(w, err.Error(), errToStatusCode(err))
160160
} else {
161161
writeJSONResult(w, product)
@@ -174,7 +174,7 @@ func (s *Server) updateProduct(w http.ResponseWriter, r *http.Request, ps httpro
174174
http.Error(w, err.Error(), errToStatusCode(err))
175175
}
176176
product.ID = productID
177-
if err := s.db.Update(&product); err != nil {
177+
if _, err := s.db.Model(&product).Update(); err != nil {
178178
http.Error(w, err.Error(), errToStatusCode(err))
179179
} else {
180180
writeJSONResult(w, product)
@@ -235,14 +235,14 @@ func (s *Server) createOrder(w http.ResponseWriter, r *http.Request, _ httproute
235235
}
236236
}
237237

238-
if err := s.db.Insert(&order); err != nil {
238+
if _, err := s.db.Model(&order).Insert(); err != nil {
239239
http.Error(w, err.Error(), errToStatusCode(err))
240240
} else {
241241
for _, product := range order.Products {
242242
var orderProduct model.OrderProduct
243243
orderProduct.Order = order
244244
orderProduct.Product = product
245-
if err := s.db.Insert(&orderProduct); err != nil {
245+
if _, err := s.db.Model(&orderProduct).Insert(); err != nil {
246246
http.Error(w, err.Error(), errToStatusCode(err))
247247
}
248248
}
@@ -258,7 +258,7 @@ func (s *Server) getOrder(w http.ResponseWriter, r *http.Request, ps httprouter.
258258
order := model.Order{
259259
ID: orderID,
260260
}
261-
if err := s.db.Select(&order); err != nil {
261+
if err := s.db.Model(&order).Select(); err != nil {
262262
http.Error(w, err.Error(), errToStatusCode(err))
263263
} else {
264264
writeJSONResult(w, order)
@@ -277,7 +277,7 @@ func (s *Server) updateOrder(w http.ResponseWriter, r *http.Request, ps httprout
277277
http.Error(w, err.Error(), errToStatusCode(err))
278278
}
279279
order.ID = orderID
280-
if err := s.db.Update(&order); err != nil {
280+
if _, err := s.db.Model(&order).Update(); err != nil {
281281
http.Error(w, err.Error(), errToStatusCode(err))
282282
} else {
283283
writeJSONResult(w, order)
@@ -315,7 +315,7 @@ func (s *Server) addProductToOrder(w http.ResponseWriter, r *http.Request, ps ht
315315
order := model.Order{
316316
ID: orderID,
317317
}
318-
if err := s.db.Select(&order); err != nil {
318+
if err := s.db.Model(&order).Select(); err != nil {
319319
tx.Rollback()
320320
http.Error(w, err.Error(), errToStatusCode(err))
321321
return
@@ -336,14 +336,14 @@ func (s *Server) addProductToOrder(w http.ResponseWriter, r *http.Request, ps ht
336336
addedProduct := model.Product{
337337
ID: productID,
338338
}
339-
if err := s.db.Select(&addedProduct); err != nil {
339+
if err := s.db.Model(&addedProduct).Select(); err != nil {
340340
tx.Rollback()
341341
http.Error(w, err.Error(), errToStatusCode(err))
342342
return
343343
}
344344

345345
order.Products = append(order.Products, addedProduct)
346-
if err := tx.Insert(&order); err != nil {
346+
if _, err := tx.Model(&order).Insert(); err != nil {
347347
tx.Rollback()
348348
http.Error(w, err.Error(), errToStatusCode(err))
349349
return
@@ -352,7 +352,7 @@ func (s *Server) addProductToOrder(w http.ResponseWriter, r *http.Request, ps ht
352352
Order: order,
353353
Product: addedProduct,
354354
}
355-
if err := tx.Insert(&orderProduct); err != nil {
355+
if _, err := tx.Model(&orderProduct).Insert(); err != nil {
356356
tx.Rollback()
357357
http.Error(w, err.Error(), errToStatusCode(err))
358358
return

go/gorm/main.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import (
77
"net/http"
88

99
"github.com/cockroachdb/examples-orms/go/gorm/model"
10-
"github.com/jinzhu/gorm"
11-
_ "github.com/jinzhu/gorm/dialects/postgres"
1210
"github.com/julienschmidt/httprouter"
11+
"gorm.io/driver/postgres"
12+
"gorm.io/gorm"
1313
)
1414

1515
var (
@@ -20,7 +20,6 @@ func main() {
2020
flag.Parse()
2121

2222
db := setupDB(*addr)
23-
defer db.Close()
2423

2524
router := httprouter.New()
2625

@@ -31,7 +30,7 @@ func main() {
3130
}
3231

3332
func setupDB(addr string) *gorm.DB {
34-
db, err := gorm.Open("postgres", addr)
33+
db, err := gorm.Open(postgres.Open(addr))
3534
if err != nil {
3635
panic(fmt.Sprintf("failed to connect to database: %v", err))
3736
}

go/gorm/server.go

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import (
66
"net/http"
77

88
"github.com/cockroachdb/examples-orms/go/gorm/model"
9-
"github.com/jinzhu/gorm"
109
"github.com/julienschmidt/httprouter"
10+
"gorm.io/gorm"
1111
)
1212

1313
// Server is an http server that handles REST requests.
@@ -87,8 +87,7 @@ func (s *Server) updateCustomer(w http.ResponseWriter, r *http.Request, ps httpr
8787
return
8888
}
8989

90-
customerID := ps.ByName("customerID")
91-
if err := s.db.Model(&customer).Where("ID = ?", customerID).Update(customer).Error; err != nil {
90+
if err := s.db.Save(customer).Error; err != nil {
9291
http.Error(w, err.Error(), errToStatusCode(err))
9392
} else {
9493
writeJSONResult(w, customer)
@@ -146,8 +145,7 @@ func (s *Server) updateProduct(w http.ResponseWriter, r *http.Request, ps httpro
146145
return
147146
}
148147

149-
productID := ps.ByName("productID")
150-
if err := s.db.Model(&product).Where("ID = ?", productID).Update(product).Error; err != nil {
148+
if err := s.db.Save(product).Error; err != nil {
151149
http.Error(w, err.Error(), errToStatusCode(err))
152150
} else {
153151
writeJSONResult(w, product)
@@ -225,8 +223,7 @@ func (s *Server) updateOrder(w http.ResponseWriter, r *http.Request, ps httprout
225223
return
226224
}
227225

228-
orderID := ps.ByName("orderID")
229-
if err := s.db.Model(&order).Where("ID = ?", orderID).Update(order).Error; err != nil {
226+
if err := s.db.Model(&order).Save(order).Error; err != nil {
230227
http.Error(w, err.Error(), errToStatusCode(err))
231228
} else {
232229
writeJSONResult(w, order)

java/hibernate/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ repositories {
1212

1313
dependencies {
1414
// Necessary for Hibernate.
15-
compile 'org.hibernate:hibernate-core:5.2.4.Final'
15+
compile 'org.hibernate:hibernate-core:5.4.30.Final'
1616
compile 'org.postgresql:postgresql:42.2.19'
1717

1818
// Necessary for web application.

node/sequelize/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"dependencies": {
99
"body-parser": "^1.19.0",
1010
"express": "^4.17.1",
11-
"sequelize": "^5.22.3",
11+
"sequelize": "^5.22.4",
1212
"sequelize-cockroachdb": "^1.1.0"
1313
}
1414
}

python/django/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ start:
44

55
deps:
66
pip3 install --upgrade setuptools
7-
pip3 install django==3.1.4 django-cockroachdb==3.1.2 psycopg2
7+
pip3 install django==3.2 django-cockroachdb==3.2 psycopg2

0 commit comments

Comments
 (0)