Fix nested Scopes, close #4196

This commit is contained in:
Jinzhu 2021-03-19 13:44:25 +08:00
parent a3d9bbfc36
commit e85b73e5a5
2 changed files with 12 additions and 8 deletions

View File

@ -109,11 +109,13 @@ func (p *processor) Execute(db *DB) {
}
// call scopes
for len(stmt.scopes) > 0 {
scopes := stmt.scopes
stmt.scopes = nil
for _, scope := range scopes {
db = scope(db)
}
}
for _, f := range p.fns {
f(db)

View File

@ -8,11 +8,13 @@ import (
// Migrator returns migrator
func (db *DB) Migrator() Migrator {
// apply scopes to migrator
for len(db.Statement.scopes) > 0 {
scopes := db.Statement.scopes
db.Statement.scopes = nil
for _, scope := range scopes {
db = scope(db)
}
}
return db.Dialector.Migrator(db.Session(&Session{}))
}