1
0
Fork 0
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:
Eggbertx 2024-10-13 20:41:50 -07:00
parent 8d98bc39df
commit f65ac476a2
4 changed files with 28 additions and 13 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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 {

View file

@ -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 {