Fix nested Scopes, close #4196
This commit is contained in:
		
							parent
							
								
									a3d9bbfc36
								
							
						
					
					
						commit
						e85b73e5a5
					
				
							
								
								
									
										10
									
								
								callbacks.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								callbacks.go
									
									
									
									
									
								
							| @ -109,10 +109,12 @@ func (p *processor) Execute(db *DB) { | ||||
| 	} | ||||
| 
 | ||||
| 	// call scopes
 | ||||
| 	scopes := stmt.scopes | ||||
| 	stmt.scopes = nil | ||||
| 	for _, scope := range scopes { | ||||
| 		db = scope(db) | ||||
| 	for len(stmt.scopes) > 0 { | ||||
| 		scopes := stmt.scopes | ||||
| 		stmt.scopes = nil | ||||
| 		for _, scope := range scopes { | ||||
| 			db = scope(db) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for _, f := range p.fns { | ||||
|  | ||||
							
								
								
									
										10
									
								
								migrator.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								migrator.go
									
									
									
									
									
								
							| @ -8,10 +8,12 @@ import ( | ||||
| // Migrator returns migrator
 | ||||
| func (db *DB) Migrator() Migrator { | ||||
| 	// apply scopes to migrator
 | ||||
| 	scopes := db.Statement.scopes | ||||
| 	db.Statement.scopes = nil | ||||
| 	for _, scope := range scopes { | ||||
| 		db = scope(db) | ||||
| 	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{})) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu