mirror of
https://github.com/aljazceru/lspd.git
synced 2025-12-23 16:54:27 +01:00
Add data migrations
This commit is contained in:
21
postgresql/migrations/000008_one_record_per_channel.down.sql
Normal file
21
postgresql/migrations/000008_one_record_per_channel.down.sql
Normal 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;
|
||||
22
postgresql/migrations/000008_one_record_per_channel.up.sql
Normal file
22
postgresql/migrations/000008_one_record_per_channel.up.sql
Normal 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;
|
||||
Reference in New Issue
Block a user