50 lines
1.5 KiB
MySQL
50 lines
1.5 KiB
MySQL
|
|
||
|
DROP INDEX "idx_deliveries_receiver";
|
||
|
|
||
|
CREATE TABLE deliveries_new
|
||
|
(
|
||
|
delivery_id TEXT NOT NULL,
|
||
|
|
||
|
message_id TEXT NOT NULL,
|
||
|
receiver_user_id TEXT NOT NULL,
|
||
|
receiver_client_id TEXT NOT NULL,
|
||
|
|
||
|
timestamp_created INTEGER NOT NULL,
|
||
|
timestamp_finalized INTEGER NULL,
|
||
|
|
||
|
|
||
|
status TEXT CHECK(status IN ('RETRY','SUCCESS','FAILED')) NOT NULL,
|
||
|
retry_count INTEGER NOT NULL DEFAULT 0,
|
||
|
next_delivery INTEGER NULL DEFAULT NULL,
|
||
|
|
||
|
fcm_message_id TEXT NULL,
|
||
|
|
||
|
PRIMARY KEY (delivery_id)
|
||
|
) STRICT;
|
||
|
|
||
|
UPDATE deliveries SET next_delivery = NULL;
|
||
|
|
||
|
INSERT INTO deliveries_new
|
||
|
SELECT
|
||
|
delivery_id,
|
||
|
message_id,
|
||
|
receiver_user_id,
|
||
|
receiver_client_id,
|
||
|
timestamp_created,
|
||
|
timestamp_finalized,
|
||
|
status,
|
||
|
retry_count,
|
||
|
next_delivery,
|
||
|
fcm_message_id
|
||
|
FROM deliveries;
|
||
|
|
||
|
|
||
|
DROP TABLE deliveries;
|
||
|
ALTER TABLE deliveries_new RENAME TO deliveries;
|
||
|
|
||
|
|
||
|
CREATE INDEX "idx_deliveries_receiver" ON deliveries (message_id, receiver_client_id);
|
||
|
|
||
|
|
||
|
|