2
This file was automatically generated from ./Schema.sql on Wed Sep 26 14:51:40 EDT 2012.
5
static const char * tomahawk_schema_sql =
6
"CREATE TABLE IF NOT EXISTS oplog ("
7
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
8
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE, "
10
" command TEXT NOT NULL,"
11
" singleton BOOLEAN NOT NULL,"
12
" compressed BOOLEAN NOT NULL,"
15
"CREATE UNIQUE INDEX oplog_guid ON oplog(guid);"
16
"CREATE INDEX oplog_source ON oplog(source);"
17
"CREATE TABLE IF NOT EXISTS artist ("
18
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
19
" name TEXT NOT NULL,"
20
" sortname TEXT NOT NULL"
22
"CREATE UNIQUE INDEX artist_sortname ON artist(sortname);"
23
"CREATE TABLE IF NOT EXISTS track ("
24
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
25
" artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
26
" name TEXT NOT NULL,"
27
" sortname TEXT NOT NULL"
29
"CREATE UNIQUE INDEX track_artist_sortname ON track(artist,sortname);"
30
"CREATE TABLE IF NOT EXISTS album ("
31
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
32
" artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
33
" name TEXT NOT NULL,"
34
" sortname TEXT NOT NULL"
36
"CREATE UNIQUE INDEX album_artist_sortname ON album(artist,sortname);"
37
"CREATE TABLE IF NOT EXISTS source ("
38
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
39
" name TEXT NOT NULL,"
41
" lastop TEXT NOT NULL DEFAULT \"\", "
42
" isonline BOOLEAN NOT NULL DEFAULT false"
44
"CREATE UNIQUE INDEX source_name ON source(name);"
45
"CREATE TABLE IF NOT EXISTS playlist ("
46
" guid TEXT PRIMARY KEY,"
47
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
48
" shared BOOLEAN DEFAULT false,"
52
" lastmodified INTEGER NOT NULL DEFAULT 0,"
53
" currentrevision TEXT REFERENCES playlist_revision(guid) DEFERRABLE INITIALLY DEFERRED,"
54
" dynplaylist BOOLEAN DEFAULT false,"
55
" createdOn INTEGER NOT NULL DEFAULT 0"
57
"CREATE TABLE IF NOT EXISTS playlist_item ("
58
" guid TEXT PRIMARY KEY,"
59
" playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
60
" trackname TEXT NOT NULL,"
61
" artistname TEXT NOT NULL,"
65
" addedon INTEGER NOT NULL DEFAULT 0, "
66
" addedby INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
69
"CREATE INDEX playlist_item_playlist ON playlist_item(playlist);"
70
"CREATE TABLE IF NOT EXISTS playlist_revision ("
71
" guid TEXT PRIMARY KEY,"
72
" playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
74
" author INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
75
" timestamp INTEGER NOT NULL DEFAULT 0,"
76
" previous_revision TEXT REFERENCES playlist_revision(guid) DEFERRABLE INITIALLY DEFERRED"
78
"CREATE TABLE IF NOT EXISTS dynamic_playlist ("
79
" guid TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
82
" autoload BOOLEAN DEFAULT true "
84
"CREATE TABLE IF NOT EXISTS dynamic_playlist_controls ("
85
" id TEXT PRIMARY KEY,"
86
" playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
91
"CREATE TABLE IF NOT EXISTS dynamic_playlist_revision ("
92
" guid TEXT PRIMARY KEY NOT NULL REFERENCES playlist_revision(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
97
"CREATE TABLE IF NOT EXISTS file ("
98
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
99
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
100
" url TEXT NOT NULL, "
101
" size INTEGER NOT NULL, "
102
" mtime INTEGER NOT NULL, "
105
" duration INTEGER NOT NULL DEFAULT 0, "
106
" bitrate INTEGER NOT NULL DEFAULT 0 "
108
"CREATE UNIQUE INDEX file_url_src_uniq ON file(source, url);"
109
"CREATE INDEX file_source ON file(source);"
110
"CREATE INDEX file_mtime ON file(mtime);"
111
"CREATE TABLE IF NOT EXISTS dirs_scanned ("
112
" name TEXT PRIMARY KEY,"
113
" mtime INTEGER NOT NULL"
115
"CREATE TABLE IF NOT EXISTS file_join ("
116
" file INTEGER PRIMARY KEY REFERENCES file(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
117
" artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
118
" track INTEGER NOT NULL REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
119
" album INTEGER REFERENCES album(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
121
" composer INTEGER REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
122
" discnumber INTEGER"
124
"CREATE INDEX file_join_track ON file_join(track);"
125
"CREATE INDEX file_join_artist ON file_join(artist);"
126
"CREATE INDEX file_join_album ON file_join(album);"
127
"CREATE TABLE IF NOT EXISTS track_tags ("
128
" id INTEGER PRIMARY KEY, "
129
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
130
" tag TEXT NOT NULL, "
132
" weight float DEFAULT 1.0 "
134
"CREATE INDEX track_tags_tag ON track_tags(tag);"
135
"CREATE TABLE IF NOT EXISTS album_tags ("
136
" id INTEGER PRIMARY KEY, "
137
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
138
" tag TEXT NOT NULL, "
140
" weight float DEFAULT 1.0 "
142
"CREATE INDEX album_tags_tag ON album_tags(tag);"
143
"CREATE TABLE IF NOT EXISTS artist_tags ("
144
" id INTEGER PRIMARY KEY, "
145
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
146
" tag TEXT NOT NULL, "
148
" weight float DEFAULT 1.0 "
150
"CREATE INDEX artist_tags_tag ON artist_tags(tag);"
151
"CREATE TABLE IF NOT EXISTS track_attributes ("
152
" id INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
156
"CREATE INDEX track_attrib_id ON track_attributes(id);"
157
"CREATE INDEX track_attrib_k ON track_attributes(k);"
158
"CREATE TABLE IF NOT EXISTS collection_attributes ("
159
" id INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
163
"CREATE TABLE IF NOT EXISTS social_attributes ("
164
" id INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, "
165
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE, "
168
" timestamp INTEGER NOT NULL DEFAULT 0"
170
"CREATE INDEX social_attrib_id ON social_attributes(id);"
171
"CREATE INDEX social_attrib_source ON social_attributes(source);"
172
"CREATE INDEX social_attrib_k ON social_attributes(k);"
173
"CREATE INDEX social_attrib_timestamp ON social_attributes(timestamp);"
174
"CREATE TABLE IF NOT EXISTS playback_log ("
175
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
176
" source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
177
" track INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,"
178
" playtime INTEGER NOT NULL, "
179
" secs_played INTEGER NOT NULL"
181
"CREATE INDEX playback_log_source ON playback_log(source);"
182
"CREATE INDEX playback_log_track ON playback_log(track);"
183
"CREATE TABLE IF NOT EXISTS http_client_auth ("
184
" token TEXT NOT NULL PRIMARY KEY,"
185
" website TEXT NOT NULL,"
186
" name TEXT NOT NULL,"
189
" permissions TEXT NOT NULL"
191
"CREATE TABLE IF NOT EXISTS settings ("
192
" k TEXT NOT NULL PRIMARY KEY,"
193
" v TEXT NOT NULL DEFAULT ''"
195
"INSERT INTO settings(k,v) VALUES('schema_version', '29');"
198
const char * get_tomahawk_sql()
200
return tomahawk_schema_sql;