Migrate deliveries.next_delivery from type:string to type:int (SCNTime)
All checks were successful
Build Docker and Deploy / Build Docker Container (push) Successful in 1m46s
Build Docker and Deploy / Deploy to Server (push) Successful in 6s

This commit is contained in:
2024-09-16 18:26:28 +02:00
parent 5da4c3d3b9
commit 7ddaf5d9aa
6 changed files with 349 additions and 17 deletions

View File

@@ -5,7 +5,6 @@ import (
"blackforestbytes.com/simplecloudnotifier/db"
"blackforestbytes.com/simplecloudnotifier/models"
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"gogs.mikescher.com/BlackForestBytes/goext/rfctime"
"gogs.mikescher.com/BlackForestBytes/goext/sq"
"time"
)
@@ -28,7 +27,7 @@ func (db *Database) CreateRetryDelivery(ctx db.TxContext, client models.Client,
TimestampFinalized: nil,
Status: models.DeliveryStatusRetry,
RetryCount: 0,
NextDelivery: rfctime.NewRFC3339NanoPtr(&next),
NextDelivery: models.NewSCNTimePtr(&next),
FCMMessageID: nil,
}
@@ -76,7 +75,7 @@ func (db *Database) ListRetrieableDeliveries(ctx db.TxContext, pageSize int) ([]
}
return sq.QueryAll[models.Delivery](ctx, tx, "SELECT * FROM deliveries WHERE status = 'RETRY' AND next_delivery < :next ORDER BY next_delivery ASC LIMIT :lim", sq.PP{
"next": time.Now().Format(time.RFC3339Nano),
"next": time2DB(time.Now()),
"lim": pageSize,
}, sq.SModeExtended, sq.Safe)
}
@@ -126,7 +125,7 @@ func (db *Database) SetDeliveryRetry(ctx db.TxContext, delivery models.Delivery)
}
_, err = tx.Exec(ctx, "UPDATE deliveries SET status = 'RETRY', next_delivery = :next, retry_count = :rc WHERE delivery_id = :did", sq.PP{
"next": scn.NextDeliveryTimestamp(time.Now()).Format(time.RFC3339Nano),
"next": time2DB(scn.NextDeliveryTimestamp(time.Now())),
"rc": delivery.RetryCount + 1,
"did": delivery.DeliveryID,
})