mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-08-18 11:46:23 -07:00
Handle recover in migration defer functions and properly capture return error
This commit is contained in:
parent
8d98bc39df
commit
f65ac476a2
4 changed files with 28 additions and 13 deletions
|
@ -48,14 +48,18 @@ func (dbu *GCDatabaseUpdater) IsMigrated() (bool, error) {
|
|||
return false, nil
|
||||
}
|
||||
|
||||
func (dbu *GCDatabaseUpdater) MigrateDB() (bool, error) {
|
||||
func (dbu *GCDatabaseUpdater) MigrateDB() (migrated bool, err error) {
|
||||
errEv := common.LogError()
|
||||
|
||||
gcsql.SetDB(dbu.db)
|
||||
migrated, err := dbu.IsMigrated()
|
||||
migrated, err = dbu.IsMigrated()
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if a := recover(); a != nil {
|
||||
errEv.Caller(4).Interface("panic", a).Send()
|
||||
errEv.Discard()
|
||||
} else if err != nil {
|
||||
errEv.Err(err).Caller(1).Send()
|
||||
errEv.Discard()
|
||||
}
|
||||
}()
|
||||
if err != nil {
|
||||
|
|
|
@ -10,13 +10,16 @@ import (
|
|||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
func updateMysqlDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) error {
|
||||
func updateMysqlDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) (err error) {
|
||||
var query string
|
||||
var dataType string
|
||||
var err error
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if a := recover(); a != nil {
|
||||
errEv.Caller(4).Interface("panic", a).Send()
|
||||
errEv.Discard()
|
||||
} else if err != nil {
|
||||
errEv.Err(err).Caller(1).Send()
|
||||
errEv.Discard()
|
||||
}
|
||||
}()
|
||||
dbName := sqlConfig.DBname
|
||||
|
|
|
@ -8,14 +8,18 @@ import (
|
|||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
func updatePostgresDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) error {
|
||||
func updatePostgresDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) (err error) {
|
||||
db := dbu.db
|
||||
var query string
|
||||
var query, dataType string
|
||||
|
||||
dataType, err := common.ColumnType(ctx, db, nil, "ip", "DBPREFIXposts", sqlConfig)
|
||||
dataType, err = common.ColumnType(ctx, db, nil, "ip", "DBPREFIXposts", sqlConfig)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if a := recover(); a != nil {
|
||||
errEv.Caller(4).Interface("panic", a).Send()
|
||||
errEv.Discard()
|
||||
} else if err != nil {
|
||||
errEv.Err(err).Caller(1).Send()
|
||||
errEv.Discard()
|
||||
}
|
||||
}()
|
||||
if err != nil {
|
||||
|
|
|
@ -8,14 +8,18 @@ import (
|
|||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
func updateSqliteDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) error {
|
||||
func updateSqliteDB(ctx context.Context, dbu *GCDatabaseUpdater, sqlConfig *config.SQLConfig, errEv *zerolog.Event) (err error) {
|
||||
db := dbu.db
|
||||
var query string
|
||||
|
||||
_, err := db.ExecContextSQL(ctx, nil, `PRAGMA foreign_keys = ON`)
|
||||
_, err = db.ExecContextSQL(ctx, nil, `PRAGMA foreign_keys = ON`)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if a := recover(); a != nil {
|
||||
errEv.Caller(4).Interface("panic", a).Send()
|
||||
errEv.Discard()
|
||||
} else if err != nil {
|
||||
errEv.Err(err).Caller(1).Send()
|
||||
errEv.Discard()
|
||||
}
|
||||
}()
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue