Manager: ensure Gorm-generated timestamps are in UTC
SQLite should store all timestamps in UTC, as the database is woefully unaware of timezones and will compare lexicographically.
This commit is contained in:
parent
24204084c1
commit
295891a17a
@ -49,7 +49,8 @@ func openDB(ctx context.Context, dsn string) (*DB, error) {
|
|||||||
dblogger := NewDBLogger(log.Level(globalLogLevel))
|
dblogger := NewDBLogger(log.Level(globalLogLevel))
|
||||||
|
|
||||||
config := gorm.Config{
|
config := gorm.Config{
|
||||||
Logger: dblogger,
|
Logger: dblogger,
|
||||||
|
NowFunc: nowFunc,
|
||||||
}
|
}
|
||||||
|
|
||||||
return openDBWithConfig(dsn, &config)
|
return openDBWithConfig(dsn, &config)
|
||||||
@ -79,6 +80,12 @@ func openDBWithConfig(dsn string, config *gorm.Config) (*DB, error) {
|
|||||||
return &db, nil
|
return &db, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// nowFunc returns 'now' in UTC, so that GORM-managed times (createdAt,
|
||||||
|
// deletedAt, updatedAt) are stored in UTC.
|
||||||
|
func nowFunc() time.Time {
|
||||||
|
return time.Now().UTC()
|
||||||
|
}
|
||||||
|
|
||||||
// PeriodicMaintenanceLoop periodically vacuums the database.
|
// PeriodicMaintenanceLoop periodically vacuums the database.
|
||||||
// This function only returns when the context is done.
|
// This function only returns when the context is done.
|
||||||
func (db *DB) PeriodicMaintenanceLoop(ctx context.Context) {
|
func (db *DB) PeriodicMaintenanceLoop(ctx context.Context) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user