Browse Source

Base MySQL schema

Note the columns "key" and "read" must be quoted in addition to "user".
microsub
J. King 5 years ago
parent
commit
0f7baf4b51
  1. 113
      sql/MySQL/0.sql
  2. 33
      sql/MySQL/1.sql

113
sql/MySQL/0.sql

@ -0,0 +1,113 @@
-- SPDX-License-Identifier: MIT
-- Copyright 2017 J. King, Dustin Wilson et al.
-- See LICENSE and AUTHORS files for details
-- Please consult the SQLite 3 schemata for commented version
create table arsse_meta(
`key` varchar(255) primary key,
value longtext
);
create table arsse_users(
id varchar(255) primary key,
password varchar(255),
name varchar(255),
avatar_type varchar(255),
avatar_data longblob,
admin boolean default 0,
rights bigint not null default 0
);
create table arsse_users_meta(
owner varchar(255) not null references arsse_users(id) on delete cascade on update cascade,
`key` varchar(255) not null,
value varchar(255),
primary key(owner,`key`)
);
create table arsse_folders(
id serial primary key,
owner varchar(255) not null references arsse_users(id) on delete cascade on update cascade,
parent bigint references arsse_folders(id) on delete cascade,
name varchar(255) not null,
modified datetime(0) not null default CURRENT_TIMESTAMP, --
unique(owner,name,parent)
);
create table arsse_feeds(
id serial primary key,
url varchar(255) not null,
title varchar(255),
favicon varchar(255),
source varchar(255),
updated datetime(0),
modified datetime(0),
next_fetch datetime(0),
orphaned datetime(0),
etag varchar(255) not null default '',
err_count bigint not null default 0,
err_msg varchar(255),
username varchar(255) not null default '',
password varchar(255) not null default '',
size bigint not null default 0,
scrape boolean not null default 0,
unique(url,username,password)
);
create table arsse_subscriptions(
id serial primary key,
owner varchar(255) not null references arsse_users(id) on delete cascade on update cascade,
feed bigint not null references arsse_feeds(id) on delete cascade,
added datetime(0) not null default CURRENT_TIMESTAMP,
modified datetime(0) not null default CURRENT_TIMESTAMP,
title varchar(255),
order_type boolean not null default 0,
pinned boolean not null default 0,
folder bigint references arsse_folders(id) on delete cascade,
unique(owner,feed)
);
create table arsse_articles(
id serial primary key,
feed bigint not null references arsse_feeds(id) on delete cascade,
url varchar(255),
title varchar(255),
author varchar(255),
published datetime(0),
edited datetime(0),
modified datetime(0) not null default CURRENT_TIMESTAMP,
content longtext,
guid varchar(255),
url_title_hash varchar(255) not null,
url_content_hash varchar(255) not null,
title_content_hash varchar(255) not null
);
create table arsse_enclosures(
article bigint not null references arsse_articles(id) on delete cascade,
url varchar(255),
type varchar(255)
);
create table arsse_marks(
article bigint not null references arsse_articles(id) on delete cascade,
subscription bigint not null references arsse_subscriptions(id) on delete cascade on update cascade,
`read` boolean not null default 0,
starred boolean not null default 0,
modified datetime(0) not null default CURRENT_TIMESTAMP,
primary key(article,subscription)
);
create table arsse_editions(
id serial primary key,
article bigint not null references arsse_articles(id) on delete cascade,
modified datetime(0) not null default CURRENT_TIMESTAMP
);
create table arsse_categories(
article bigint not null references arsse_articles(id) on delete cascade,
name varchar(255)
);
insert into arsse_meta(`key`,value) values('schema_version','1');

33
sql/MySQL/1.sql

@ -0,0 +1,33 @@
-- SPDX-License-Identifier: MIT
-- Copyright 2017 J. King, Dustin Wilson et al.
-- See LICENSE and AUTHORS files for details
-- Please consult the SQLite 3 schemata for commented version
create table arsse_sessions (
id varchar(255) primary key,
created datetime(0) not null default CURRENT_TIMESTAMP,
expires datetime(0) not null,
`user` varchar(255) not null references arsse_users(id) on delete cascade on update cascade
);
create table arsse_labels (
id serial primary key,
owner varchar(255) not null references arsse_users(id) on delete cascade on update cascade,
name varchar(255) not null,
modified datetime(0) not null default CURRENT_TIMESTAMP,
unique(owner,name)
);
create table arsse_label_members (
label bigint not null references arsse_labels(id) on delete cascade,
article bigint not null references arsse_articles(id) on delete cascade,
subscription bigint not null references arsse_subscriptions(id) on delete cascade,
assigned boolean not null default 1,
modified datetime(0) not null default CURRENT_TIMESTAMP,
primary key(label,article)
);
alter table arsse_marks add column note longtext not null default '';
update arsse_meta set value = '2' where `key` = 'schema_version';
Loading…
Cancel
Save