-
Notifications
You must be signed in to change notification settings - Fork 0
/
dbschema.json
133 lines (133 loc) · 6.37 KB
/
dbschema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
{
"db_name": "ZeroNetDevCenter",
"db_file": "data/zeronetdevcenter.db",
"version": 2,
"maps": {
"tutorials.json": {
"to_table": [
{
"node": "tutorials",
"table": "tutorials"
}
]
},
"blog.json": {
"to_table": ["blogposts"]
},
"tags.json": {
"to_table": ["tags"]
},
"users/.+/data.json": {
"to_table": [ "comments", "questions", "answers", "answer_votes" ],
"to_keyvalue": [ "next_comment_id", "next_question_id", "next_answer_id" ]
},
"users/.+/content.json": {
"to_json_table": ["cert_user_id"],
"file_name": "data.json"
}
},
"tables": {
"json": {
"cols": [
["json_id", "INTEGER PRIMARY KEY AUTOINCREMENT"],
["directory", "TEXT"],
["file_name", "TEXT"],
["cert_user_id", "TEXT"]
],
"indexes": ["CREATE UNIQUE INDEX path ON json(directory, file_name)"],
"schema_changed": 12
},
"tutorials": {
"cols": [
["id", "INTEGER PRIMARY KEY"],
["slug", "TEXT NOT NULL"],
["file", "TEXT NOT NULL"],
["title", "TEXT NOT NULL"],
["description", "TEXT"],
["author", "TEXT NOT NULL"],
["tags", "TEXT"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX tutorial_key ON tutorials(id, json_id)", "CREATE UNIQUE INDEX tutorials_slug ON tutorials(slug)", "CREATE INDEX tutorial_file ON tutorials(slug)", "CREATE INDEX tutorial_title ON tutorials(title)"],
"schema_changed": 12
},
"blogposts": {
"cols": [
["post_id", "INTEGER"],
["title", "TEXT"],
["slug", "TEXT"],
["body", "TEXT"],
["tags", "TEXT"],
["date_added", "INTEGER"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX blog_posts_key ON blogposts (json_id, post_id)", "CREATE INDEX blog_posts_id ON blogposts (post_id)"],
"schema_changed": 11
},
"tags": {
"cols": [
["tag_id", "INTEGER"],
["name", "TEXT"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX tags_key ON tags (json_id, tag_id)"],
"schema_changed": 10
},
"comments": {
"cols": [
["comment_id", "INTEGER"],
["reference_id", "INTEGER"],
["reference_auth_address", "TEXT"],
["reference_type", "TEXT"],
["body", "TEXT"],
["date_added", "INTEGER"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX comment_key ON comments(json_id, comment_id)", "CREATE INDEX comment_reference_id ON comments(reference_id)"],
"schema_changed": 18
},
"questions": {
"cols": [
["question_id", "INTEGER"],
["title", "TEXT"],
["body", "TEXT"],
["solution_id", "INTEGER"],
["solution_auth_address", "TEXT"],
["tags", "TEXT"],
["date_added", "INTEGER"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX question_key ON questions(json_id, question_id)"],
"schema_changed": 14
},
"answers": {
"cols": [
["answer_id", "INTEGER"],
["question_id", "INTEGER"],
["question_auth_address", "TEXT"],
["body", "TEXT"],
["date_added", "INTEGER"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX answer_key ON answers(json_id, answer_id)"],
"schema_changed": 18
},
"answer_votes": {
"cols": [
["answer_vote_id", "INTEGER PRIMARY KEY AUTOINCREMENT"],
["answer_id", "INTEGER"],
["answer_auth_address", "TEXT"],
["vote", "INTEGER"],
["json_id", "INTEGER REFERENCES json (json_id)"]
],
"indexes": ["CREATE UNIQUE INDEX answer_votekey ON answer_votes(json_id, answer_vote_id)"],
"schema_changed": 10
}
},
"feeds": {
"Blogposts": "SELECT blogposts.post_id AS event_uri, 'post' AS type, blogposts.date_added AS date_added, blogposts.title AS title, blogposts.body AS body, '?/blog/' || blogposts.slug AS url FROM blogposts LEFT JOIN json USING (json_id)",
"Blogcomments": "SELECT comments.comment_id AS event_uri, 'comment' AS type, comments.date_added AS date_added, blogposts.title AS title, json.cert_user_id || ': ' || comments.body AS body, '?/blog/' || blogposts.slug AS url FROM comments LEFT JOIN json ON (comments.json_id = json.json_id) LEFT JOIN blogposts ON (comments.reference_id = blogposts.post_id) WHERE reference_type='b'",
"Questions": "SELECT questions.question_id AS event_uri, 'article' AS type, questions.date_added AS date_added, 'Question: ' || questions.title AS title, json.cert_user_id || ': ' || questions.body AS body, '?/questions/' || REPLACE(json.directory, 'users/', '') || '/' || questions.question_id AS url FROM questions LEFT JOIN json ON (questions.json_id = json.json_id)",
"QuestionAnswers": "SELECT answers.answer_id AS event_uri, 'article' AS type, answers.date_added AS date_added, 'Answer on: ' || questions.title AS title, json.cert_user_id || ': ' || answers.body AS body, '?/questions/' || answers.question_auth_address || '/' || answers.question_id AS url FROM answers LEFT JOIN questions ON (answers.question_id = questions.question_id) LEFT JOIN json ON (questions.json_id = json.json_id) WHERE answers.question_auth_address = REPLACE(json.directory, 'users/', '')"
}
}