From 19cb991cc95cf877c0c0d287f47b8fd609163eee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Mon, 31 Jan 2022 08:50:11 +0100 Subject: [PATCH] fix: metric counters should use bigint (#1313) --- src/lib/db/client-metrics-store-v2.ts | 4 ++-- ...220129113106-metrics-counters-as-bigint.js | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/migrations/20220129113106-metrics-counters-as-bigint.js diff --git a/src/lib/db/client-metrics-store-v2.ts b/src/lib/db/client-metrics-store-v2.ts index 0737a6216a7..74a94de9226 100644 --- a/src/lib/db/client-metrics-store-v2.ts +++ b/src/lib/db/client-metrics-store-v2.ts @@ -24,8 +24,8 @@ const fromRow = (row: ClientMetricsEnvTable) => ({ appName: row.app_name, environment: row.environment, timestamp: row.timestamp, - yes: row.yes, - no: row.no, + yes: Number(row.yes), + no: Number(row.no), }); const toRow = (metric: IClientMetricsEnv) => ({ diff --git a/src/migrations/20220129113106-metrics-counters-as-bigint.js b/src/migrations/20220129113106-metrics-counters-as-bigint.js new file mode 100644 index 00000000000..f967a79ed3b --- /dev/null +++ b/src/migrations/20220129113106-metrics-counters-as-bigint.js @@ -0,0 +1,23 @@ +'use strict'; + +exports.up = function (db, cb) { + db.runSql( + ` + ALTER TABLE client_metrics_env + ALTER COLUMN yes TYPE BIGINT, + ALTER COLUMN no TYPE BIGINT; + `, + cb, + ); +}; + +exports.down = function (db, cb) { + db.runSql( + ` + ALTER TABLE client_metrics_env + ALTER COLUMN yes TYPE INTEGER, + ALTER COLUMN no TYPE INTEGER; + `, + cb, + ); +};