0 {{driver_name} database must be updated manually and is not initialized; please populate the database with the base schema}
other {{driver_name} database must be updated manually; please update from schema version {current} to version {target}}
}',
'Exception.JKingWeb/NewsSync/Db/Update/Exception.fileMissing' => 'Automatic updating of the {driver_name} database failed due to instructions for updating from version {current} not being available',
'Exception.JKingWeb/NewsSync/Db/Update/Exception.fileUnreadable' => 'Automatic updating of the {driver_name} database failed due to insufficient permissions to read instructions for updating from version {current}',
'Exception.JKingWeb/NewsSync/Db/Update/Exception.fileUnusable' => 'Automatic updating of the {driver_name} database failed due to an error reading instructions for updating from version {current}',
'Exception.JKingWeb/NewsSync/Db/ExceptionUpdate.fileMissing' => 'Automatic updating of the {driver_name} database failed due to instructions for updating from version {current} not being available',
'Exception.JKingWeb/NewsSync/Db/ExceptionUpdate.fileUnreadable' => 'Automatic updating of the {driver_name} database failed due to insufficient permissions to read instructions for updating from version {current}',
'Exception.JKingWeb/NewsSync/Db/ExceptionUpdate.fileUnusable' => 'Automatic updating of the {driver_name} database failed due to an error reading instructions for updating from version {current}',
)default'text'-- the deserialized type of the value
);
-- users
createtablenewssync_users(
idTEXTprimarykeynotnull,-- user id
passwordTEXT,-- password, salted and hashed; if using external authentication this would be blank
nameTEXT,-- display name
avatar_urlTEXT,-- external URL to avatar
avatar_typeTEXT,-- internal avatar image's MIME content type
avatar_dataBLOB,-- internal avatar image's binary data
rightsintegernotnulldefault0-- any administrative rights the user may have
);
-- newsfeeds, deduplicated
createtablenewssync_feeds(
idintegerprimarykeynotnull,-- sequence number
@ -15,6 +35,31 @@ create table newssync_feeds(
unique(url,username,password)-- a URL with particular credentials should only appear once
);
-- users' subscriptions to newsfeeds, with settings
createtablenewssync_subscriptions(
idintegerprimarykeynotnull,-- sequence number
ownerTEXTnotnullreferencesnewssync_users(id)ondeletecascadeonupdatecascade,-- owner of subscription
feedintegernotnullreferencesnewssync_feeds(id)ondeletecascade,-- feed for the subscription
addeddatetimenotnulldefaultCURRENT_TIMESTAMP,-- time at which feed was added
modifieddatetimenotnulldefaultCURRENT_TIMESTAMP,-- date at which subscription properties were last modified
titleTEXT,-- user-supplied title
order_typeintnotnulldefault0,-- ownCloud sort order
pinnedbooleannotnulldefault0,-- whether feed is pinned (always sorts at top)
folderintegerreferencesnewssync_folders(id)ondeletesetnull,-- TT-RSS category (nestable); the first-level category (which acts as ownCloud folder) is joined in when needed
unique(owner,feed)-- a given feed should only appear once for a given owner
);
-- TT-RSS categories and ownCloud folders
createtablenewssync_folders(
idintegerprimarykeynotnull,-- sequence number
ownerTEXTnotnullreferencesnewssync_users(id)ondeletecascadeonupdatecascade,-- owner of folder
unique(owner,name,parent)-- cannot have multiple categories with the same name under the same parent for the same owner
);
-- users' subscriptions to newsfeeds, with settings
createtablenewssync_subscriptions(
idintegerprimarykeynotnull,-- sequence number
ownerTEXTnotnullreferencesnewssync_users(id)ondeletecascadeonupdatecascade,-- owner of subscription
feedintegernotnullreferencesnewssync_feeds(id)ondeletecascade,-- feed for the subscription
addeddatetimenotnulldefaultCURRENT_TIMESTAMP,-- time at which feed was added
modifieddatetimenotnulldefaultCURRENT_TIMESTAMP,-- date at which subscription properties were last modified
titleTEXT,-- user-supplied title
order_typeintnotnulldefault0,-- ownCloud sort order
pinnedbooleannotnulldefault0,-- whether feed is pinned (always sorts at top)
categoryintegerreferencesnewssync_categories(id)ondeletesetnull,-- TT-RSS category (nestable); the first-level category (which acts as ownCloud folder) is joined in when needed
unique(owner,feed)-- a given feed should only appear once for a given owner