I find it very reassuring to know that after a finisher API, I get a clean db object for my next queries.
If you look at the example in https://gorm.io/docs i’d see many queries running one after the other.. but in reality they wouldn’t work as the they are portrayed and that’s because in default mode NewDB is false and will make all the clauses stay even after a finisher API.
My solution is just to have the value of the clone flag in the “parent” db object, be injected to its children transactions.
* fix type alias AutoMigrate bug. eg
```go
package main
type IDer interface{ GetID() int64 }
// ID will add some method to implement some interface eg: GetID
type ID int64
func (z ID) GetID() int64 { return int64(z) }
type Test struct {
ID
Code string `gorm:"size:50"`
Name string `gorm:"size:50"`
}
func main() {
db, err := gorm.Open(postgres.New(postgres.Config{
DSN: `dsn`,
PreferSimpleProtocol: false,
}), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
SkipDefaultTransaction: true,
})
if err != nil {
log.Fatal(err)
}
if err = db.AutoMigrate(&Test{}); err != nil {
// invalid embedded struct for Test's field ID, should be struct, but got main.ID
log.Fatal(err)
}
}
```
* fix type alias AutoMigrate bug. eg
```go
package main
type IDer interface{ GetID() int64 }
// ID will add some method to implement some interface eg: GetID
type ID int64
func (z ID) GetID() int64 { return int64(z) }
type Test struct {
ID
Code string `gorm:"size:50"`
Name string `gorm:"size:50"`
}
func main() {
db, err := gorm.Open(postgres.New(postgres.Config{
DSN: `dsn`,
PreferSimpleProtocol: false,
}), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
SkipDefaultTransaction: true,
})
if err != nil {
log.Fatal(err)
}
if err = db.AutoMigrate(&Test{}); err != nil {
// invalid embedded struct for Test's field ID, should be struct, but got main.ID
log.Fatal(err)
}
}
```
* Add typealis test.
* try to fix golangci-lint
* fix: Save not use soft_delete
* fix: save not use soft_delete
* fix: save not use soft_delete
* fix: save not use soft_delete
Co-authored-by: kinggo <>
* feat(migrator,migrator/migrator.go,tests/migrate_test.go) : Get multiple data tables for migrator.
* feat(migrator.go and migrator/migrator.go) : remove Table Struct replace with []string
* fix(migrator) : Return all data tables
* Update migrator.go
* fix(migrator/migrator.go):remove var sql
* feat(migrate_test.go/go.mod):update sqlserver,sqlite,postgres,pq version and add getTables test
* fix(migrate_test.go):change GetTables Method Test,use intersection
Co-authored-by: dino.ma <mashengjie03@baidu.com>
* Add db.ToSQL method for generate SQL string.
* Improve sql builder test for all dialects.
Improve assertEqualSQL test helper for ignore quotes in SQL.
* Refactor ParseWithSchemaTable method and improve test.
* Fix schema.ParseWithSchemaTable method for only use schemaTable in migrator and improve test.
* Rename `schemaTable` to `specialTableName` for clearly argument.