MCPcopy
hub / github.com/go-gorm/gorm / OpenTestConnection

Function OpenTestConnection

tests/tests_test.go:52–118  ·  view source on GitHub ↗
(cfg *gorm.Config)

Source from the content-addressed store, hash-verified

50}
51
52func OpenTestConnection(cfg *gorm.Config) (db *gorm.DB, err error) {
53 dbDSN := os.Getenv("GORM_DSN")
54 switch os.Getenv("GORM_DIALECT") {
55 case "mysql":
56 log.Println("testing mysql...")
57 if dbDSN == "" {
58 dbDSN = mysqlDSN
59 }
60 db, err = gorm.Open(mysql.Open(dbDSN), cfg)
61 case "postgres":
62 log.Println("testing postgres...")
63 if dbDSN == "" {
64 dbDSN = postgresDSN
65 }
66 db, err = gorm.Open(postgres.New(postgres.Config{
67 DSN: dbDSN,
68 PreferSimpleProtocol: true,
69 }), cfg)
70 case "gaussdb":
71 log.Println("testing gaussdb...")
72 if dbDSN == "" {
73 dbDSN = gaussdbDSN
74 }
75 db, err = gorm.Open(gaussdb.New(gaussdb.Config{
76 DSN: dbDSN,
77 PreferSimpleProtocol: true,
78 }), cfg)
79 case "sqlserver":
80 // go install github.com/microsoft/go-sqlcmd/cmd/sqlcmd@latest
81 // SQLCMDPASSWORD=LoremIpsum86 sqlcmd -U sa -S localhost:9930
82 // CREATE DATABASE gorm;
83 // GO
84 // CREATE LOGIN gorm WITH PASSWORD = 'LoremIpsum86';
85 // CREATE USER gorm FROM LOGIN gorm;
86 // ALTER SERVER ROLE sysadmin ADD MEMBER [gorm];
87 // GO
88 log.Println("testing sqlserver...")
89 if dbDSN == "" {
90 dbDSN = sqlserverDSN
91 }
92 db, err = gorm.Open(sqlserver.Open(dbDSN), cfg)
93 case "tidb":
94 log.Println("testing tidb...")
95 if dbDSN == "" {
96 dbDSN = tidbDSN
97 }
98 db, err = gorm.Open(mysql.Open(dbDSN), cfg)
99 default:
100 log.Println("testing sqlite3...")
101 db, err = gorm.Open(sqlite.Open(filepath.Join(os.TempDir(), "gorm.db")), cfg)
102 if err == nil {
103 db.Exec("PRAGMA foreign_keys = ON")
104 }
105 }
106
107 if err != nil {
108 return
109 }

Calls 4

OpenFunction · 0.92
NewMethod · 0.65
ExecMethod · 0.65
LogModeMethod · 0.65

Tested by

no test coverage detected