25 lines
771 B
SQL
25 lines
771 B
SQL
CREATE TABLE IF NOT EXISTS documents (
|
|
vault_id TEXT NOT NULL,
|
|
vault_update_id INTEGER NOT NULL,
|
|
document_id TEXT NOT NULL,
|
|
relative_path TEXT NOT NULL,
|
|
created_date TIMESTAMP NOT NULL,
|
|
updated_date TIMESTAMP NOT NULL,
|
|
content BLOB NOT NULL,
|
|
is_deleted BOOLEAN NOT NULL,
|
|
PRIMARY KEY (vault_id, vault_update_id)
|
|
);
|
|
|
|
CREATE VIEW IF NOT EXISTS latest_document_versions AS
|
|
SELECT d.*
|
|
FROM documents d
|
|
INNER JOIN (
|
|
SELECT vault_id, MAX(vault_update_id) AS max_version_id
|
|
FROM documents
|
|
GROUP BY vault_id, document_id
|
|
) max_versions
|
|
ON d.vault_id = max_versions.vault_id
|
|
AND d.vault_update_id = max_versions.max_version_id;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_documents_vault_id_relative_path
|
|
ON documents (vault_id, relative_path);
|