OSDN Git Service

start
[hmh/wiki.git] / _initialize / db.hml
1 ml_debug
2         datastore:wiki
3         ml:-
4         dump
5 ;;;
6 ($sqlite3 'database :create
7         (sql "begin")
8
9         (sql "create table Wiki(WID integer primary key autoincrement,Title text,WikiText text)")
10
11         (sql "create table WikiIndex(IID integer primary key autoincrement,PID integer,Page text,UID integer,IP text,Date integer,WID integer,unique(PID,Page) on conflict replace)")
12         (sql "create index I_WikiIndex_PP on WikiIndex(PID,Page)")
13
14         (sql "create table BackupIndex(PID integer,Page text,UID integer,IP text,Date integer,WID integer)")
15         (sql "create index I_BackupIndex_PP on BackupIndex(PID,Page)")
16
17         (sql "create table CategoryList(CID integer primary key autoincrement,PID integer,CName text,unique(PID,CName) on conflict ignore)")
18         (sql "create table WikiCategory(PID integer,IID integer,CID integer,unique(PID,IID,CID) on conflict ignore)")
19
20         (sql "create table Project(PID integer primary key autoincrement,Proj text,PublicProj text)")
21
22         (sql "create table Member(UID integer primary key autoincrement unique on conflict replace,Login text,CPW text,Name text,Pron text,Org text,Mail text)")
23         (sql "create table Admin(UID integer unique on conflict ignore)")
24
25         (sql "create table ProjectMember(PID integer,UID integer,Reader text,Writer text,unique(PID,UID) on conflict ignore)")
26
27         (sql "end")
28 )
29
30 ($sqlite3 'database
31         (sql "insert into Member(Login,Name,CPW) values(:login,:name,:cpw)"
32                 :bind ':login "admin" :bind ':name "administrator" :bind ':cpw (password-crypt "admin"))
33         (setvar 'uid (rowid))
34         (sql "insert into Admin(UID) select UID from Member where Login=:login"
35                 :bind ':login "admin")
36
37         (sql "insert into Project(Proj,PublicProj) values('Main','1')")
38         (setvar 'pid (rowid))
39         (sql "insert into ProjectMember(PID,UID,Reader,Writer) values(:pid,:uid,'1','1')"
40                 :bind (list ':pid pid ':uid uid))
41 )