graph/db+sqldb: make policy migration idempotent
Finally, we make the channel-policy part of the SQL migration idempotent by adding a migration-only policy insert query which will not error out if the policy already exists and does not have a timestamp that is newer than the existing records timestamp. To keep the commit simple, a insertChanEdgePolicyMig function is added which is basically identical to the updateChanEdgePolicy function except for the fact that it uses the newly added query. In the next commit, it will be simplified even more.
This commit is contained in:
6 files changed
+221
-23
No files matched your search
@@ -96,6 +96,12 @@ type Querier interface {
|
||||
// and version columns).
|
||||
InsertChannelMig(ctx context.Context, arg InsertChannelMigParams) (int64, error)
|
||||
InsertClosedChannel(ctx context.Context, scid []byte) error
|
||||
// NOTE: This query is only meant to be used by the graph SQL migration since
|
||||
// for that migration, in order to be retry-safe, we don't want to error out if
|
||||
// we re-insert the same policy (which would error if the normal
|
||||
// UpsertEdgePolicy query is used because of the constraint in that query that
|
||||
// requires a policy update to have a newer last_update than the existing one).
|
||||
InsertEdgePolicyMig(ctx context.Context, arg InsertEdgePolicyMigParams) (int64, error)
|
||||
InsertInvoice(ctx context.Context, arg InsertInvoiceParams) (int64, error)
|
||||
InsertInvoiceFeature(ctx context.Context, arg InsertInvoiceFeatureParams) error
|
||||
InsertInvoiceHTLC(ctx context.Context, arg InsertInvoiceHTLCParams) (int64, error)
|
||||
|
||||
Reference in new issue
Block a user