52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# GORM MySQL Driver
|
|
|
|
## Quick Start
|
|
|
|
```go
|
|
import (
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// https://github.com/go-sql-driver/mysql
|
|
dsn := "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local"
|
|
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
```
|
|
|
|
## Configuration
|
|
|
|
```go
|
|
import (
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var datetimePrecision = 2
|
|
|
|
db, err := gorm.Open(mysql.New(mysql.Config{
|
|
DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", // data source name, refer https://github.com/go-sql-driver/mysql#dsn-data-source-name
|
|
DefaultStringSize: 256, // add default size for string fields, by default, will use db type `longtext` for fields without size, not a primary key, no index defined and don't have default values
|
|
DisableDatetimePrecision: true, // disable datetime precision support, which not supported before MySQL 5.6
|
|
DefaultDatetimePrecision: &datetimePrecision, // default datetime precision
|
|
DontSupportRenameIndex: true, // drop & create index when rename index, rename index not supported before MySQL 5.7, MariaDB
|
|
DontSupportRenameColumn: true, // use change when rename column, rename rename not supported before MySQL 8, MariaDB
|
|
SkipInitializeWithVersion: false, // smart configure based on used version
|
|
}), &gorm.Config{})
|
|
```
|
|
|
|
## Customized Driver
|
|
|
|
```go
|
|
import (
|
|
_ "example.com/my_mysql_driver"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
db, err := gorm.Open(mysql.New(mysql.Config{
|
|
DriverName: "my_mysql_driver_name",
|
|
DSN: "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True&loc=Local", // data source name, refer https://github.com/go-sql-driver/mysql#dsn-data-source-name
|
|
})
|
|
```
|
|
|
|
Checkout [https://gorm.io](https://gorm.io) for details.
|