fix: return init dialector error (#7379)
* fix: return init dialector error * mock defer * fix: skip AfterInitialize --------- Co-authored-by: wenyazhou.13 <wenyazhou.13@bytedance.com>
This commit is contained in:
		
							parent
							
								
									e3037e4ef0
								
							
						
					
					
						commit
						8e7ab46c1b
					
				
							
								
								
									
										8
									
								
								gorm.go
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								gorm.go
									
									
									
									
									
								
							| @ -135,12 +135,16 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) { | ||||
| 		return isConfig && !isConfig2 | ||||
| 	}) | ||||
| 
 | ||||
| 	var skipAfterInitialize bool | ||||
| 	for _, opt := range opts { | ||||
| 		if opt != nil { | ||||
| 			if applyErr := opt.Apply(config); applyErr != nil { | ||||
| 				return nil, applyErr | ||||
| 			} | ||||
| 			defer func(opt Option) { | ||||
| 				if skipAfterInitialize { | ||||
| 					return | ||||
| 				} | ||||
| 				if errr := opt.AfterInitialize(db); errr != nil { | ||||
| 					err = errr | ||||
| 				} | ||||
| @ -192,6 +196,10 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) { | ||||
| 			if db, _ := db.DB(); db != nil { | ||||
| 				_ = db.Close() | ||||
| 			} | ||||
| 
 | ||||
| 			// DB is not initialized, so we skip AfterInitialize
 | ||||
| 			skipAfterInitialize = true | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		if config.TranslateError { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 codingplz
						codingplz