Add cmd for generating code from the new models
Some checks are pending
/ test (push) Waiting to run
Some checks are pending
/ test (push) Waiting to run
This commit is contained in:
parent
67b507f4bd
commit
bf5180559f
9 changed files with 401 additions and 132 deletions
|
@ -1,64 +0,0 @@
|
|||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
type gormLogger struct {
|
||||
logger zerolog.Logger
|
||||
}
|
||||
|
||||
func newGormLogger(zerologger zerolog.Logger) *gormLogger {
|
||||
return &gormLogger{zerologger}
|
||||
}
|
||||
|
||||
func (g *gormLogger) LogMode(newLevel logger.LogLevel) logger.Interface {
|
||||
switch newLevel {
|
||||
case logger.Error:
|
||||
g.logger = g.logger.Level(zerolog.ErrorLevel)
|
||||
case logger.Warn:
|
||||
g.logger = g.logger.Level(zerolog.WarnLevel)
|
||||
case logger.Info:
|
||||
g.logger = g.logger.Level(zerolog.InfoLevel)
|
||||
case logger.Silent:
|
||||
g.logger = g.logger.Level(zerolog.Disabled)
|
||||
}
|
||||
return g
|
||||
}
|
||||
func (g *gormLogger) Info(ctx context.Context, format string, args ...interface{}) {
|
||||
g.logger.Info().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
func (g *gormLogger) Warn(ctx context.Context, format string, args ...interface{}) {
|
||||
g.logger.Warn().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
func (g *gormLogger) Error(ctx context.Context, format string, args ...interface{}) {
|
||||
g.logger.Error().Ctx(ctx).Msgf(format, args...)
|
||||
}
|
||||
|
||||
func (g *gormLogger) Trace(
|
||||
ctx context.Context,
|
||||
begin time.Time,
|
||||
fc func() (sql string, rowsAffected int64),
|
||||
err error,
|
||||
) {
|
||||
sql, rowsAffected := fc()
|
||||
g.logger.Trace().
|
||||
Ctx(ctx).
|
||||
Time("gorm-begin", begin).
|
||||
Err(err).
|
||||
Str("gorm-query", sql).
|
||||
Int64("gorm-rows-affected", rowsAffected).
|
||||
Send()
|
||||
}
|
||||
|
||||
func (g *gormLogger) OverwriteLoggingLevel(new zerolog.Level) {
|
||||
g.logger = g.logger.Level(new)
|
||||
}
|
||||
|
||||
func (g *gormLogger) OverwriteLogger(new zerolog.Logger) {
|
||||
g.logger = new
|
||||
}
|
|
@ -32,26 +32,7 @@ func Migrate(db *gorm.DB) error {
|
|||
|
||||
// Returns the raw error created by gorm, with no wrapping
|
||||
func migrateTypes(db *gorm.DB) error {
|
||||
if err := db.AutoMigrate(
|
||||
&models.Emote{},
|
||||
&models.MediaMetadata{},
|
||||
&models.Note{},
|
||||
&models.NoteToAttachment{},
|
||||
&models.NoteToEmote{},
|
||||
&models.NoteToPing{},
|
||||
&models.NoteTag{},
|
||||
&models.Reaction{},
|
||||
&models.RemoteServer{},
|
||||
&models.Role{},
|
||||
&models.User{},
|
||||
&models.UserAuthMethod{},
|
||||
&models.UserToBeing{},
|
||||
&models.UserInfoField{},
|
||||
&models.UserToUserRelation{},
|
||||
&models.UserRemoteLinks{},
|
||||
&models.UserToRole{},
|
||||
&models.UserToTag{},
|
||||
); err != nil {
|
||||
if err := db.AutoMigrate(models.AllTypes...); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
|
22
storage-new/models/0allTypes.go
Normal file
22
storage-new/models/0allTypes.go
Normal file
|
@ -0,0 +1,22 @@
|
|||
package models
|
||||
|
||||
var AllTypes = []any{
|
||||
&Emote{},
|
||||
&MediaMetadata{},
|
||||
&Note{},
|
||||
&NoteToAttachment{},
|
||||
&NoteToEmote{},
|
||||
&NoteToPing{},
|
||||
&NoteTag{},
|
||||
&Reaction{},
|
||||
&RemoteServer{},
|
||||
&Role{},
|
||||
&User{},
|
||||
&UserAuthMethod{},
|
||||
&UserToBeing{},
|
||||
&UserInfoField{},
|
||||
&UserToUserRelation{},
|
||||
&UserRemoteLinks{},
|
||||
&UserToTag{},
|
||||
&UserToRole{},
|
||||
}
|
|
@ -41,7 +41,7 @@ type Role struct {
|
|||
gorm.Model
|
||||
|
||||
// Name of the role
|
||||
Name string `gorm:"primaryKey;unique"`
|
||||
Name string `gorm:"unique"`
|
||||
|
||||
// Priority of the role
|
||||
// Lower priority gets applied first and thus overwritten by higher priority ones
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue