From 3663205d65def7c1e9660c8d7738f51a0ea24e98 Mon Sep 17 00:00:00 2001 From: Rhys Bartels-Waller Date: Wed, 13 Jan 2021 21:23:59 +1100 Subject: [PATCH] refactor: isolate migration and metadata application This is to avoid rolling back migrations when only the metadata application fails on startup. --- packages/api-cardano-db-hasura/src/HasuraClient.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/api-cardano-db-hasura/src/HasuraClient.ts b/packages/api-cardano-db-hasura/src/HasuraClient.ts index 3c4a012d..87c62480 100644 --- a/packages/api-cardano-db-hasura/src/HasuraClient.ts +++ b/packages/api-cardano-db-hasura/src/HasuraClient.ts @@ -82,12 +82,18 @@ export class HasuraClient { await pRetry(async () => { await this.hasuraCli('migrate apply --down all') await this.hasuraCli('migrate apply --up all') + }, { + factor: 1.75, + retries: 9, + onFailedAttempt: util.onFailedAttemptFor('Applying PostgreSQL schema migrations') + }) + await pRetry(async () => { await this.hasuraCli('metadata clear') await this.hasuraCli('metadata apply') }, { factor: 1.75, retries: 9, - onFailedAttempt: util.onFailedAttemptFor('Applying PostgreSQL schema and Hasura metadata') + onFailedAttempt: util.onFailedAttemptFor('Applying Hasura metadata') }) this.applyingSchemaAndMetadata = false }