mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Fix bug on admin subcommand (#17533)
* Fix bug on admin subcommand * Add signals for all initDB Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		| @@ -128,40 +128,8 @@ func syncTables() error { | ||||
| 	return x.StoreEngine("InnoDB").Sync2(tables...) | ||||
| } | ||||
|  | ||||
| // InitInstallEngineWithMigration creates a new xorm.Engine for testing during install | ||||
| // | ||||
| // This function will cause the basic database schema to be created | ||||
| func InitInstallEngineWithMigration(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err error) { | ||||
| 	x, err = NewEngine() | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("failed to connect to database: %w", err) | ||||
| 	} | ||||
|  | ||||
| 	x.SetMapper(names.GonicMapper{}) | ||||
| 	x.SetLogger(NewXORMLogger(!setting.IsProd)) | ||||
| 	x.ShowSQL(!setting.IsProd) | ||||
|  | ||||
| 	x.SetDefaultContext(ctx) | ||||
|  | ||||
| 	if err = x.Ping(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// We have to run migrateFunc here in case the user is re-running installation on a previously created DB. | ||||
| 	// If we do not then table schemas will be changed and there will be conflicts when the migrations run properly. | ||||
| 	// | ||||
| 	// Installation should only be being re-run if users want to recover an old database. | ||||
| 	// However, we should think carefully about should we support re-install on an installed instance, | ||||
| 	// as there may be other problems due to secret reinitialization. | ||||
| 	if err = migrateFunc(x); err != nil { | ||||
| 		return fmt.Errorf("migrate: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	return syncTables() | ||||
| } | ||||
|  | ||||
| // InitEngine sets the xorm.Engine | ||||
| func InitEngine() (err error) { | ||||
| func InitEngine(ctx context.Context) (err error) { | ||||
| 	x, err = NewEngine() | ||||
| 	if err != nil { | ||||
| 		return fmt.Errorf("Failed to connect to database: %v", err) | ||||
| @@ -175,6 +143,12 @@ func InitEngine() (err error) { | ||||
| 	x.SetMaxOpenConns(setting.Database.MaxOpenConns) | ||||
| 	x.SetMaxIdleConns(setting.Database.MaxIdleConns) | ||||
| 	x.SetConnMaxLifetime(setting.Database.ConnMaxLifetime) | ||||
|  | ||||
| 	DefaultContext = &Context{ | ||||
| 		Context: ctx, | ||||
| 		e:       x, | ||||
| 	} | ||||
| 	x.SetDefaultContext(ctx) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| @@ -184,21 +158,20 @@ func InitEngine() (err error) { | ||||
| // that prevents the doctor from fixing anything in the database if the migration level | ||||
| // is different from the expected value. | ||||
| func InitEngineWithMigration(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err error) { | ||||
| 	if err = InitEngine(); err != nil { | ||||
| 	if err = InitEngine(ctx); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	DefaultContext = &Context{ | ||||
| 		Context: ctx, | ||||
| 		e:       x, | ||||
| 	} | ||||
|  | ||||
| 	x.SetDefaultContext(ctx) | ||||
|  | ||||
| 	if err = x.Ping(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// We have to run migrateFunc here in case the user is re-running installation on a previously created DB. | ||||
| 	// If we do not then table schemas will be changed and there will be conflicts when the migrations run properly. | ||||
| 	// | ||||
| 	// Installation should only be being re-run if users want to recover an old database. | ||||
| 	// However, we should think carefully about should we support re-install on an installed instance, | ||||
| 	// as there may be other problems due to secret reinitialization. | ||||
| 	if err = migrateFunc(x); err != nil { | ||||
| 		return fmt.Errorf("migrate: %v", err) | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user