(cfg *gorm.Config)
| 50 | } |
| 51 | |
| 52 | func 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 | } |
no test coverage detected