mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 09:58:32 +02:00
update schema -> fix creating new database from scratch
This commit is contained in:
parent
d66ad4319e
commit
f6413d095c
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
SCHEMA_FILE_PATH=db/schema.sql
|
SCHEMA_FILE_PATH=db/schema.sql
|
||||||
|
|
||||||
sqlite3 ~/trilium-data/document.db .schema | grep -v "sqlite_sequence" > "$SCHEMA_FILE_PATH" | grep -v "note_fulltext_"
|
sqlite3 ~/trilium-data/document.db .schema | grep -v "sqlite_sequence" | grep -v "note_fulltext_" > "$SCHEMA_FILE_PATH"
|
||||||
|
|
||||||
echo "DB schema exported to $SCHEMA_FILE_PATH"
|
echo "DB schema exported to $SCHEMA_FILE_PATH"
|
192
db/schema.sql
192
db/schema.sql
@ -1,64 +1,72 @@
|
|||||||
|
CREATE VIRTUAL TABLE note_fulltext USING fts5(noteId UNINDEXED, title, titleHash UNINDEXED, content, contentHash UNINDEXED)
|
||||||
|
/* note_fulltext(noteId,title,titleHash,content,contentHash) */;
|
||||||
CREATE TABLE IF NOT EXISTS "sync" (
|
CREATE TABLE IF NOT EXISTS "sync" (
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
`entityName` TEXT NOT NULL,
|
`entityName` TEXT NOT NULL,
|
||||||
`entityId` TEXT NOT NULL,
|
`entityId` TEXT NOT NULL,
|
||||||
`sourceId` TEXT NOT NULL,
|
`sourceId` TEXT NOT NULL,
|
||||||
`syncDate` TEXT NOT NULL);
|
`utcSyncDate` TEXT NOT NULL);
|
||||||
CREATE TABLE IF NOT EXISTS "source_ids" (
|
CREATE TABLE IF NOT EXISTS "source_ids" (
|
||||||
`sourceId` TEXT NOT NULL,
|
`sourceId` TEXT NOT NULL,
|
||||||
`dateCreated` TEXT NOT NULL,
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
PRIMARY KEY(`sourceId`)
|
PRIMARY KEY(`sourceId`)
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "note_revisions" (
|
CREATE TABLE IF NOT EXISTS "note_revisions" (
|
||||||
`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
`title` TEXT,
|
`title` TEXT,
|
||||||
`content` TEXT,
|
`content` TEXT,
|
||||||
`isProtected` INT NOT NULL DEFAULT 0,
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
`dateModifiedFrom` TEXT NOT NULL,
|
`utcDateModifiedFrom` TEXT NOT NULL,
|
||||||
`dateModifiedTo` TEXT NOT NULL
|
`utcDateModifiedTo` TEXT NOT NULL,
|
||||||
, type TEXT DEFAULT '' NOT NULL, mime TEXT DEFAULT '' NOT NULL, hash TEXT DEFAULT "" NOT NULL);
|
`dateModifiedFrom` TEXT NOT NULL,
|
||||||
|
`dateModifiedTo` TEXT NOT NULL,
|
||||||
|
type TEXT DEFAULT '' NOT NULL,
|
||||||
|
mime TEXT DEFAULT '' NOT NULL,
|
||||||
|
hash TEXT DEFAULT "" NOT NULL);
|
||||||
CREATE TABLE IF NOT EXISTS "api_tokens"
|
CREATE TABLE IF NOT EXISTS "api_tokens"
|
||||||
(
|
(
|
||||||
apiTokenId TEXT PRIMARY KEY NOT NULL,
|
apiTokenId TEXT PRIMARY KEY NOT NULL,
|
||||||
token TEXT NOT NULL,
|
token TEXT NOT NULL,
|
||||||
dateCreated TEXT NOT NULL,
|
utcDateCreated TEXT NOT NULL,
|
||||||
isDeleted INT NOT NULL DEFAULT 0
|
isDeleted INT NOT NULL DEFAULT 0,
|
||||||
, hash TEXT DEFAULT "" NOT NULL);
|
hash TEXT DEFAULT "" NOT NULL);
|
||||||
CREATE TABLE IF NOT EXISTS "branches" (
|
CREATE TABLE IF NOT EXISTS "branches" (
|
||||||
`branchId` TEXT NOT NULL,
|
`branchId` TEXT NOT NULL,
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
`parentNoteId` TEXT NOT NULL,
|
`parentNoteId` TEXT NOT NULL,
|
||||||
`notePosition` INTEGER NOT NULL,
|
`notePosition` INTEGER NOT NULL,
|
||||||
`prefix` TEXT,
|
`prefix` TEXT,
|
||||||
`isExpanded` BOOLEAN,
|
`isExpanded` BOOLEAN,
|
||||||
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
||||||
`dateModified` TEXT NOT NULL, hash TEXT DEFAULT "" NOT NULL, dateCreated TEXT NOT NULL DEFAULT '1970-01-01T00:00:00.000Z',
|
`utcDateModified` TEXT NOT NULL,
|
||||||
PRIMARY KEY(`branchId`)
|
utcDateCreated TEXT NOT NULL,
|
||||||
|
hash TEXT DEFAULT "" NOT NULL,
|
||||||
|
PRIMARY KEY(`branchId`)
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "recent_notes" (
|
CREATE TABLE IF NOT EXISTS "recent_notes" (
|
||||||
`branchId` TEXT NOT NULL PRIMARY KEY,
|
`branchId` TEXT NOT NULL PRIMARY KEY,
|
||||||
`notePath` TEXT NOT NULL,
|
`notePath` TEXT NOT NULL,
|
||||||
hash TEXT DEFAULT "" NOT NULL,
|
hash TEXT DEFAULT "" NOT NULL,
|
||||||
`dateCreated` TEXT NOT NULL,
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
isDeleted INT
|
isDeleted INT
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "event_log" (
|
CREATE TABLE IF NOT EXISTS "event_log" (
|
||||||
`eventId` TEXT NOT NULL PRIMARY KEY,
|
`eventId` TEXT NOT NULL PRIMARY KEY,
|
||||||
`noteId` TEXT,
|
`noteId` TEXT,
|
||||||
`comment` TEXT,
|
`comment` TEXT,
|
||||||
`dateCreated` TEXT NOT NULL
|
`utcDateCreated` TEXT NOT NULL
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "options"
|
CREATE TABLE IF NOT EXISTS "options"
|
||||||
(
|
(
|
||||||
name TEXT not null PRIMARY KEY,
|
name TEXT not null PRIMARY KEY,
|
||||||
value TEXT,
|
value TEXT,
|
||||||
dateModified INT,
|
|
||||||
isSynced INTEGER default 0 not null,
|
isSynced INTEGER default 0 not null,
|
||||||
hash TEXT default "" not null,
|
hash TEXT default "" not null,
|
||||||
dateCreated TEXT default '1970-01-01T00:00:00.000Z' not null
|
utcDateCreated TEXT not null,
|
||||||
|
utcDateModified TEXT NOT NULL
|
||||||
);
|
);
|
||||||
CREATE TABLE attributes
|
CREATE TABLE IF NOT EXISTS "attributes"
|
||||||
(
|
(
|
||||||
attributeId TEXT not null primary key,
|
attributeId TEXT not null primary key,
|
||||||
noteId TEXT not null,
|
noteId TEXT not null,
|
||||||
@ -66,66 +74,69 @@ CREATE TABLE attributes
|
|||||||
name TEXT not null,
|
name TEXT not null,
|
||||||
value TEXT default '' not null,
|
value TEXT default '' not null,
|
||||||
position INT default 0 not null,
|
position INT default 0 not null,
|
||||||
dateCreated TEXT not null,
|
utcDateCreated TEXT not null,
|
||||||
dateModified TEXT not null,
|
utcDateModified TEXT not null,
|
||||||
isDeleted INT not null,
|
isDeleted INT not null,
|
||||||
hash TEXT default "" not null, isInheritable int DEFAULT 0 NULL);
|
hash TEXT default "" not null,
|
||||||
|
isInheritable int DEFAULT 0 NULL);
|
||||||
CREATE TABLE IF NOT EXISTS "links" (
|
CREATE TABLE IF NOT EXISTS "links" (
|
||||||
`linkId` TEXT NOT NULL,
|
`linkId` TEXT NOT NULL,
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
`targetNoteId` TEXT NOT NULL,
|
`targetNoteId` TEXT NOT NULL,
|
||||||
`type` TEXT NOT NULL,
|
`type` TEXT NOT NULL,
|
||||||
`hash` TEXT DEFAULT "" NOT NULL,
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
||||||
`dateCreated` TEXT NOT NULL,
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
`dateModified` TEXT NOT NULL,
|
`utcDateModified` TEXT NOT NULL,
|
||||||
PRIMARY KEY(`linkId`)
|
PRIMARY KEY(`linkId`)
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "note_contents" (
|
CREATE TABLE IF NOT EXISTS "note_contents" (
|
||||||
`noteContentId` TEXT NOT NULL,
|
`noteContentId` TEXT NOT NULL,
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
`isProtected` INT NOT NULL DEFAULT 0,
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
`content` TEXT NULL DEFAULT NULL,
|
`content` TEXT NULL DEFAULT NULL,
|
||||||
`hash` TEXT DEFAULT "" NOT NULL,
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
`dateCreated` TEXT NOT NULL,
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
`dateModified` TEXT NOT NULL,
|
`utcDateModified` TEXT NOT NULL,
|
||||||
PRIMARY KEY(`noteContentId`)
|
PRIMARY KEY(`noteContentId`)
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "notes" (
|
CREATE TABLE IF NOT EXISTS "notes" (
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
`title` TEXT NOT NULL DEFAULT "note",
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
`isProtected` INT NOT NULL DEFAULT 0,
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
`type` TEXT NOT NULL DEFAULT 'text',
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
`hash` TEXT DEFAULT "" NOT NULL,
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
`isDeleted` INT NOT NULL DEFAULT 0,
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
`dateCreated` TEXT NOT NULL,
|
`dateCreated` TEXT NOT NULL,
|
||||||
`dateModified` TEXT NOT NULL,
|
`dateModified` TEXT NOT NULL,
|
||||||
PRIMARY KEY(`noteId`)
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`)
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
|
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
|
||||||
`entityName`,
|
`entityName`,
|
||||||
`entityId`
|
`entityId`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_sync_syncDate` ON `sync` (
|
CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` (
|
||||||
`syncDate`
|
`utcSyncDate`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (
|
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (
|
||||||
`noteId`
|
`noteId`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_note_revisions_dateModifiedFrom` ON `note_revisions` (
|
CREATE INDEX `IDX_note_revisions_dateModifiedFrom` ON `note_revisions` (
|
||||||
`dateModifiedFrom`
|
`utcDateModifiedFrom`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_note_revisions_dateModifiedTo` ON `note_revisions` (
|
CREATE INDEX `IDX_note_revisions_dateModifiedTo` ON `note_revisions` (
|
||||||
`dateModifiedTo`
|
`utcDateModifiedTo`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_branches_noteId` ON `branches` (
|
CREATE INDEX `IDX_branches_noteId` ON `branches` (
|
||||||
`noteId`
|
`noteId`
|
||||||
);
|
);
|
||||||
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (
|
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (
|
||||||
`noteId`,
|
`noteId`,
|
||||||
`parentNoteId`
|
`parentNoteId`
|
||||||
);
|
);
|
||||||
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
|
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
|
||||||
CREATE INDEX IDX_attributes_name_value
|
CREATE INDEX IDX_attributes_name_value
|
||||||
on attributes (name, value);
|
on attributes (name, value);
|
||||||
@ -140,10 +151,3 @@ CREATE INDEX IDX_attributes_noteId_index
|
|||||||
CREATE INDEX IDX_attributes_value_index
|
CREATE INDEX IDX_attributes_value_index
|
||||||
on attributes (value);
|
on attributes (value);
|
||||||
CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`);
|
CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`);
|
||||||
CREATE VIRTUAL TABLE note_fulltext USING fts5(noteId UNINDEXED, title, titleHash UNINDEXED, content, contentHash UNINDEXED)
|
|
||||||
/* note_fulltext(noteId,title,titleHash,content,contentHash) */;
|
|
||||||
CREATE TABLE IF NOT EXISTS 'note_fulltext_data'(id INTEGER PRIMARY KEY, block BLOB);
|
|
||||||
CREATE TABLE IF NOT EXISTS 'note_fulltext_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
|
|
||||||
CREATE TABLE IF NOT EXISTS 'note_fulltext_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
|
|
||||||
CREATE TABLE IF NOT EXISTS 'note_fulltext_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
|
|
||||||
CREATE TABLE IF NOT EXISTS 'note_fulltext_config'(k PRIMARY KEY, v) WITHOUT ROWID;
|
|
||||||
|
@ -26,6 +26,10 @@ class Option extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
beforeSaving() {
|
beforeSaving() {
|
||||||
|
if (!this.utcDateCreated) {
|
||||||
|
this.utcDateCreated = dateUtils.utcNowDateTime();
|
||||||
|
}
|
||||||
|
|
||||||
super.beforeSaving();
|
super.beforeSaving();
|
||||||
|
|
||||||
if (this.isChanged) {
|
if (this.isChanged) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user