split store and store_sqlite implementatio into multiple crates

This commit is contained in:
Lennart
2024-10-28 15:34:20 +01:00
parent 53d2ea10e6
commit c013ffa117
13 changed files with 213 additions and 107 deletions

View File

@@ -0,0 +1,37 @@
CREATE TABLE calendars (
principal TEXT NOT NULL,
id TEXT NOT NULL,
synctoken INTEGER DEFAULT 0 NOT NULL,
displayname TEXT,
description TEXT,
"order" INT DEFAULT 0 NOT NULL,
color TEXT,
timezone TEXT NOT NULL,
deleted_at DATETIME,
PRIMARY KEY (principal, id)
);
CREATE TABLE calendarobjects (
principal TEXT NOT NULL,
cal_id TEXT NOT NULL,
id TEXT NOT NULL,
ics TEXT NOT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
deleted_at DATETIME,
PRIMARY KEY (principal, cal_id, id),
FOREIGN KEY (principal, cal_id)
REFERENCES calendars (principal, id) ON DELETE CASCADE
);
CREATE TABLE calendarobjectchangelog (
-- The actual sync token is the SQLite field 'ROWID'
principal TEXT NOT NULL,
cal_id TEXT NOT NULL,
object_id TEXT NOT NULL,
operation INTEGER NOT NULL,
synctoken INTEGER DEFAULT 0 NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (principal, cal_id, created_at),
FOREIGN KEY (principal, cal_id)
REFERENCES calendars (principal, id) ON DELETE CASCADE
);

View File

@@ -0,0 +1,34 @@
CREATE TABLE addressbooks (
principal TEXT NOT NULL,
id TEXT NOT NULL,
synctoken INTEGER DEFAULT 0 NOT NULL,
displayname TEXT,
description TEXT,
deleted_at DATETIME,
PRIMARY KEY (principal, id)
);
CREATE TABLE addressobjects (
principal TEXT NOT NULL,
addressbook_id TEXT NOT NULL,
id TEXT NOT NULL,
vcf TEXT NOT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
deleted_at DATETIME,
PRIMARY KEY (principal, addressbook_id, id),
FOREIGN KEY (principal, addressbook_id)
REFERENCES addressbooks (principal, id) ON DELETE CASCADE
);
CREATE TABLE addressobjectchangelog (
-- The actual sync token is the SQLite field 'ROWID'
principal TEXT NOT NULL,
addressbook_id TEXT NOT NULL,
object_id TEXT NOT NULL,
operation INTEGER NOT NULL,
synctoken INTEGER DEFAULT 0 NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (principal, addressbook_id, created_at),
FOREIGN KEY (principal, addressbook_id)
REFERENCES addressbooks (principal, id) ON DELETE CASCADE
);