UNPKG

1.77 kBapplication/x-sqlView Raw
1
2CREATE TABLE device (
3 id INTEGER PRIMARY KEY,
4 ua INTEGER,
5 hash BLOB UNIQUE
6);
7
8CREATE TABLE device_ua (
9 id INTEGER PRIMARY KEY,
10 text TEXT
11);
12
13CREATE TABLE session (
14 id INTEGER PRIMARY KEY,
15 device INTEGER NOT NULL REFERENCES device(id) ON UPDATE CASCADE,
16 ip BLOB
17);
18
19CREATE TABLE window (
20 id INTEGER PRIMARY KEY AUTOINCREMENT,
21 created INTEGER,
22 session INTEGER NOT NULL REFERENCES session(id) ON UPDATE CASCADE,
23 deleted INTEGER default NULL,
24 opener BLOB
25);
26
27CREATE INDEX window_s ON window(session) WHERE deleted IS NULL;
28
29CREATE TABLE login (
30 id INTEGER PRIMARY KEY,
31 created INTEGER,
32 deleted INTEGER,
33 window INTEGER,
34 type INTEGER,
35 user INTEGER
36);
37
38CREATE INDEX login_w ON login(window) WHERE deleted IS NULL;
39
40CREATE TABLE login_type (
41 id INTEGER PRIMARY KEY,
42 text TEXT
43);
44
45CREATE TABLE window_log (
46 id INTEGER PRIMARY KEY,
47 time INTEGER default (CAST(((julianday('now') - 2440587.5)*86400000) as INTEGER)),
48 window INTEGER,
49 event BLOB,
50 data BLOB
51);
52
53CREATE TABLE remember (
54 device INTEGER NOT NULL REFERENCES device(id) ON UPDATE CASCADE,
55 user INTEGER NOT NULL,
56 login INTEGER NOT NULL REFERENCES login(id) ON UPDATE CASCADE,
57 PRIMARY KEY(device, user)
58);
59
60CREATE TABLE invite (
61 id INTEGER PRIMARY KEY,
62 created INTEGER,
63 hash BLOB UNIQUE,
64 role INTEGER
65);
66
67CREATE TABLE recover (
68 id INTEGER PRIMARY KEY,
69 created INTEGER default (CAST(((julianday('now') - 2440587.5)*86400000) as INTEGER)),
70 hash BLOB UNIQUE,
71 user INTEGER
72);
73
74-- Down
75
76DROP TABLE device;
77DROP TABLE session;
78DROP TABLE window;
79DROP TABLE window_log;
80DROP TABLE login;
81DROP TABLE login_type;
82DROP TABLE invite;
83DROP TABLE recover;
84
85DROP INDEX window_s;
86DROP INDEX login_w;
87