This is an automated email from the ASF dual-hosted git repository.
thunguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-seata-go-samples.git
The following commit(s) were added to refs/heads/main by this push:
new 2d2c9b7 refactor: eliminate hardcoded database DSNs across all
samples using util helpers (#101)
2d2c9b7 is described below
commit 2d2c9b73fb1b3733b0433b8b960d22b5cc5b1973
Author: tachibana22 <[email protected]>
AuthorDate: Thu Jun 25 20:11:14 2026 +0800
refactor: eliminate hardcoded database DSNs across all samples using util
helpers (#101)
---
at/gorm/main.go | 9 +++------
at/grpc/service/service.go | 9 ++-------
tcc/fence/service/service.go | 37 +++++++------------------------------
util/db.go | 10 ++++++++++
xa/gorm/main.go | 9 +++------
5 files changed, 25 insertions(+), 49 deletions(-)
diff --git a/at/gorm/main.go b/at/gorm/main.go
index e2a3e54..bb3f8fd 100644
--- a/at/gorm/main.go
+++ b/at/gorm/main.go
@@ -19,13 +19,12 @@ package main
import (
"context"
- "database/sql"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
+ "seata.apache.org/seata-go-samples/util"
"seata.apache.org/seata-go/pkg/client"
- sql2 "seata.apache.org/seata-go/pkg/datasource/sql"
"seata.apache.org/seata-go/pkg/tm"
)
@@ -65,11 +64,9 @@ func initConfig() {
var gormDB *gorm.DB
func initDB() {
- sqlDB, err := sql.Open(sql2.SeataATMySQLDriver,
"root:12345678@tcp(127.0.0.1:3306)/seata_client?multiStatements=true&interpolateParams=true")
- if err != nil {
- panic("init service error")
- }
+ sqlDB := util.GetAtMySqlDb()
+ var err error
gormDB, err = gorm.Open(mysql.New(mysql.Config{
Conn: sqlDB,
}), &gorm.Config{})
diff --git a/at/grpc/service/service.go b/at/grpc/service/service.go
index 50cc655..5e859fc 100644
--- a/at/grpc/service/service.go
+++ b/at/grpc/service/service.go
@@ -25,8 +25,7 @@ import (
"google.golang.org/protobuf/types/known/wrapperspb"
__ "seata.apache.org/seata-go-samples/at/grpc/pb"
-
- sql2 "seata.apache.org/seata-go/pkg/datasource/sql"
+ "seata.apache.org/seata-go-samples/util"
)
var (
@@ -34,11 +33,7 @@ var (
)
func InitService() {
- var err error
- db, err = sql.Open(sql2.SeataATMySQLDriver,
"root:12345678@tcp(127.0.0.1:3306)/seata_client?multiStatements=true&interpolateParams=true")
- if err != nil {
- panic("init service error")
- }
+ db = util.GetAtMySqlDb()
}
type GrpcBusinessService struct {
diff --git a/tcc/fence/service/service.go b/tcc/fence/service/service.go
index 8680d2b..7fc6237 100644
--- a/tcc/fence/service/service.go
+++ b/tcc/fence/service/service.go
@@ -19,21 +19,16 @@ package service
import (
"context"
- "database/sql"
"fmt"
"sync"
+ "seata.apache.org/seata-go-samples/util"
"seata.apache.org/seata-go/pkg/rm/tcc"
"seata.apache.org/seata-go/pkg/rm/tcc/fence"
"seata.apache.org/seata-go/pkg/tm"
"seata.apache.org/seata-go/pkg/util/log"
)
-const (
- DriverName = "mysql"
- Url =
"root:root@tcp(127.0.0.1:3306)/seata?charset=utf8&parseTime=True"
-)
-
var (
tccService *tcc.TCCServiceProxy
tccServiceOnce sync.Once
@@ -59,10 +54,7 @@ func NewTestTCCServiceBusinessProxy() *tcc.TCCServiceProxy {
}
func (T TestTCCServiceBusiness) Prepare(ctx context.Context, params
interface{}) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
@@ -88,10 +80,7 @@ func (T TestTCCServiceBusiness) Prepare(ctx context.Context,
params interface{})
}
func (T TestTCCServiceBusiness) Commit(ctx context.Context,
businessActionContext *tm.BusinessActionContext) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
@@ -117,10 +106,7 @@ func (T TestTCCServiceBusiness) Commit(ctx
context.Context, businessActionContex
}
func (T TestTCCServiceBusiness) Rollback(ctx context.Context,
businessActionContext *tm.BusinessActionContext) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
@@ -169,10 +155,7 @@ func NewTestTCCServiceBusiness2Proxy()
*tcc.TCCServiceProxy {
}
func (T TestTCCServiceBusiness2) Prepare(ctx context.Context, params
interface{}) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
@@ -198,10 +181,7 @@ func (T TestTCCServiceBusiness2) Prepare(ctx
context.Context, params interface{}
}
func (T TestTCCServiceBusiness2) Commit(ctx context.Context,
businessActionContext *tm.BusinessActionContext) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
@@ -227,10 +207,7 @@ func (T TestTCCServiceBusiness2) Commit(ctx
context.Context, businessActionConte
}
func (T TestTCCServiceBusiness2) Rollback(ctx context.Context,
businessActionContext *tm.BusinessActionContext) (b bool, err error) {
- db, err := sql.Open(DriverName, Url)
- if err != nil {
- return false, fmt.Errorf("database connect failed, msg :%s",
err.Error())
- }
+ db := util.GetTccMySqlDb()
defer func() {
_ = db.Close()
}()
diff --git a/util/db.go b/util/db.go
index 1efff10..4ef4a1b 100644
--- a/util/db.go
+++ b/util/db.go
@@ -44,6 +44,16 @@ func GetXAMySqlDb() *sql.DB {
return dbAt
}
+func GetTccMySqlDb() *sql.DB {
+ defaultEnv()
+ dsn :=
os.ExpandEnv("${MYSQL_USERNAME}:${MYSQL_PASSWORD}@tcp(${MYSQL_HOST}:${MYSQL_PORT})/${MYSQL_DB}?charset=utf8&parseTime=True")
+ dbTcc, err := sql.Open("mysql", dsn)
+ if err != nil {
+ panic("init tcc mysql driver error")
+ }
+ return dbTcc
+}
+
func defaultEnv() {
if os.Getenv("MYSQL_HOST") == "" {
_ = os.Setenv("MYSQL_HOST", "127.0.0.1")
diff --git a/xa/gorm/main.go b/xa/gorm/main.go
index a40b37b..08a4426 100644
--- a/xa/gorm/main.go
+++ b/xa/gorm/main.go
@@ -19,13 +19,12 @@ package main
import (
"context"
- "database/sql"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
+ "seata.apache.org/seata-go-samples/util"
"seata.apache.org/seata-go/pkg/client"
- sql2 "seata.apache.org/seata-go/pkg/datasource/sql"
"seata.apache.org/seata-go/pkg/tm"
)
@@ -72,11 +71,9 @@ func initConfig() {
var gormDB *gorm.DB
func initDB() {
- sqlDB, err := sql.Open(sql2.SeataXAMySQLDriver,
"root:12345678@tcp(127.0.0.1:3306)/seata_client?multiStatements=true&interpolateParams=true")
- if err != nil {
- panic("init service error")
- }
+ sqlDB := util.GetXAMySqlDb()
+ var err error
gormDB, err = gorm.Open(mysql.New(mysql.Config{
Conn: sqlDB,
}), &gorm.Config{})
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]