Add data migrations

This commit is contained in:
Yaacov Akiba Slama
2022-09-19 22:32:19 +03:00
parent 6594e3de27
commit 3a4892ce8a
2 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
ALTER INDEX public.channels_nodeid_idx RENAME TO channels_new_nodeid_idx;
ALTER INDEX public.channels_channel_point_pkey RENAME TO channels_new_channel_point_pkey
ALTER TABLE public.channels RENAME TO channels_new;
CREATE TABLE public.channels (
chanid int8 NOT NULL,
channel_point varchar NULL,
nodeid bytea NULL,
last_update timestamp NULL,
CONSTRAINT chanid_pkey PRIMARY KEY (chanid)
);
CREATE INDEX channels_nodeid_idx ON public.channels USING btree (nodeid);
INSERT INTO public.channels
SELECT initial_chanid chanid, channel_point, nodeid, last_update FROM channels_new;
INSERT INTO public.channels
SELECT confirmed_chanid chanid, channel_point, nodeid, last_update FROM channels_new
WHERE confirmed_chanid IS NOT NULL AND confirmed_chanid <> initial_chanid;
DROP TABLE channels_new;

View File

@@ -0,0 +1,22 @@
ALTER INDEX public.channels_nodeid_idx RENAME TO channels_old_nodeid_idx;
ALTER INDEX public.chanid_pkey RENAME TO channels_old_chanid_pkey;
ALTER TABLE public.channels RENAME TO channels_old;
CREATE TABLE public.channels (
initial_chanid int8 NOT NULL,
confirmed_chanid int8 NULL,
channel_point varchar NOT NULL,
nodeid bytea NOT NULL,
last_update timestamp NULL,
CONSTRAINT channels_channel_point_pkey PRIMARY KEY (channel_point)
);
CREATE INDEX channels_nodeid_idx ON public.channels USING btree (nodeid);
INSERT INTO public.channels
SELECT
min(chanid) initial_chanid,
CASE WHEN (max(chanid) >> 40) < (3 << 17) THEN NULL ELSE max(chanid) END confirmed_chanid,
channel_point, nodeid, max(last_update) last_update
FROM channels_old GROUP BY channel_point, nodeid;
DROP TABLE public.channels_old;