mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 02:22:21 +00:00
@@ -0,0 +1,53 @@
|
||||
-- Adds the column "uid" and populates it with data from "id"
|
||||
ALTER TABLE calendarobjects RENAME TO calendarobjects_old;
|
||||
|
||||
CREATE TABLE calendarobjects (
|
||||
principal TEXT NOT NULL,
|
||||
cal_id TEXT NOT NULL,
|
||||
id TEXT NOT NULL, -- filename
|
||||
"uid" TEXT NOT NULL, -- global identifier
|
||||
ics TEXT NOT NULL,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at DATETIME,
|
||||
|
||||
-- For more efficient calendar-queries
|
||||
first_occurence DATE,
|
||||
last_occurence DATE,
|
||||
etag TEXT,
|
||||
object_type INTEGER NOT NULL, -- VEVENT(0)/VTODO(1)/VJOURNAL(2)
|
||||
|
||||
CONSTRAINT pk_calendarobject_id PRIMARY KEY (principal, cal_id, id),
|
||||
CONSTRAINT uq_calendarobject_uid UNIQUE (principal, cal_id, "uid"),
|
||||
CONSTRAINT fk_calendarobject_calendar FOREIGN KEY (principal, cal_id)
|
||||
REFERENCES calendars (principal, id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX idx_calobjs_uid ON calendarobjects (principal, cal_id, "uid");
|
||||
|
||||
INSERT INTO calendarobjects (
|
||||
principal,
|
||||
cal_id,
|
||||
id,
|
||||
"uid",
|
||||
ics,
|
||||
updated_at,
|
||||
deleted_at,
|
||||
first_occurence,
|
||||
last_occurence,
|
||||
etag,
|
||||
object_type
|
||||
) SELECT
|
||||
principal,
|
||||
cal_id,
|
||||
id,
|
||||
id AS "uid",
|
||||
ics,
|
||||
updated_at,
|
||||
deleted_at,
|
||||
first_occurence,
|
||||
last_occurence,
|
||||
etag,
|
||||
object_type
|
||||
FROM calendarobjects_old;
|
||||
|
||||
DROP TABLE calendarobjects_old;
|
||||
Reference in New Issue
Block a user