sessions/internal/bundb/migrations/20221122050217_create_sessions_table.go
Dawid Wysokiński 8e8e7e1f94
All checks were successful
continuous-integration/drone/push Build is passing
feat: add a new REST endpoint - PUT /api/v1/user/sessions/:server (#8)
Reviewed-on: #8
2022-11-24 05:17:32 +00:00

32 lines
771 B
Go

package migrations
import (
"context"
"fmt"
"gitea.dwysokinski.me/twhelp/sessions/internal/bundb/internal/model"
"github.com/uptrace/bun"
)
func init() {
Migrations.MustRegister(func(ctx context.Context, db *bun.DB) error {
if _, err := db.NewCreateTable().
Model(&model.Session{}).
Varchar(defaultVarcharLength).
ForeignKey(`(user_id) REFERENCES users (id) ON DELETE CASCADE`).
Exec(ctx); err != nil {
return fmt.Errorf("couldn't create the 'sessions' table: %w", err)
}
return nil
}, func(ctx context.Context, db *bun.DB) error {
if _, err := db.NewDropTable().
Model(&model.Session{}).
IfExists().
Cascade().
Exec(ctx); err != nil {
return fmt.Errorf("couldn't drop the 'sessions' table: %w", err)
}
return nil
})
}