Mercurial > hgrepos > hgweb.cgi > s4
comparison s4-annex.sh @ 755:1a8291d7fa3d feature-world
Annex strategy shifted to World strategy
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Sat, 06 Jun 2020 11:21:01 +0900 |
parents | 5bab8644024a |
children |
comparison
equal
deleted
inserted
replaced
754:5bab8644024a | 755:1a8291d7fa3d |
---|---|
6 if [ "$db" -ef "$S4MASTERDB" ]; then | 6 if [ "$db" -ef "$S4MASTERDB" ]; then |
7 return # Points to the same file | 7 return # Points to the same file |
8 fi | 8 fi |
9 | 9 |
10 # Now S4ANNEX mode is ACTIVE | 10 # Now S4ANNEX mode is ACTIVE |
11 S4ANNEXNAME=`dirname $mydir` | 11 # sessdb=`dirname $S4MASTERDB`/sess.sq3 |
12 sessdb=`dirname $S4MASTERDB`/sess.sq3 | |
13 S4ANNEXES="<div><table><tr><th><a | |
14 href=\"$S4MASTERURL\">本館</a></th></tr></table><div>" | |
15 ## skey="skey-`basename $mydir`" | 12 ## skey="skey-`basename $mydir`" |
16 syncflag=$dbdir/usersynced | 13 S4NAME="[$S4WORLD]$S4NAME" |
14 syncflag=${db%.*}.synctime | |
17 userupdateflag=`dirname $S4MASTERDB`/`basename $userupdateflag` | 15 userupdateflag=`dirname $S4MASTERDB`/`basename $userupdateflag` |
18 test ! -e "$userupdateflag" && return | 16 test ! -e "$userupdateflag" && return |
19 test "$syncflag" -nt "$userupdateflag" && return | 17 test "$syncflag" -nt "$userupdateflag" && return |
20 | 18 |
21 # for sub.sq3 | 19 # for sub.sq3 |
22 # | 20 # |
23 # main: user: 'taro', 'hanako', 'shige' | 21 # main: user: 'taro', 'hanako', 'shige' |
24 # sub: user: 'taro', 'hanako', 'shige' | 22 # sub: user: 'taro', 'hanako', 'shige' |
25 # sub2: user_s: ('taro', 't'), ('hanako', 'h'), ('shige', 's') | 23 # sub2: user_s: ('taro', 't'), ('hanako', 'h'), ('shige', 's') |
26 # then update | 24 # then update |
27 # | 25 # |
28 | 26 |
29 ## sqlite3 -cmd '.timer 1' -cmd '.echo 1' $db <<EOF | 27 ## sqlite3 -cmd '.timer 1' -cmd '.echo 1' $db <<EOF |
30 err "Starting account synchronization" | 28 err "Starting account synchronization" |
31 err "db=$db mas=$S4MASTERDB sess=$sessdb" | 29 err "db=$db mas=$S4MASTERDB sessdb=$sessdb" |
32 num=$(sqlite3 -bail -cmd 'PRAGMA FOREIGN_KEYS=on' $db <<EOF | 30 num=$(sqlite3 -bail -cmd 'PRAGMA FOREIGN_KEYS=on' $db <<EOF |
33 ATTACH DATABASE "$S4MASTERDB" AS m; | 31 ATTACH DATABASE "$S4MASTERDB" AS m; |
34 CREATE TABLE IF NOT EXISTS user(name, primary key(name)); | 32 CREATE TABLE IF NOT EXISTS user(name, primary key(name)); |
35 BEGIN; | 33 BEGIN; |
36 DElETE FROM main.user WHERE rowid NOT IN (SELECT rowid FROM m.user); | 34 DElETE FROM main.user WHERE rowid NOT IN (SELECT rowid FROM m.user); |
37 INSERT INTO main.user(rowid, name) | 35 INSERT INTO main.user(rowid, name) |
38 SELECT rowid, name FROM m.user | 36 SELECT rowid, name FROM m.user |
39 WHERE m.user.rowid NOT IN (SELECT rowid FROM user); | 37 WHERE m.user.rowid NOT IN (SELECT rowid FROM user); |
40 UPDATE user SET name = (SELECT name FROM m.user WHERE main.user.rowid=m.user.rowid); | 38 UPDATE user SET name = (SELECT name FROM m.user WHERE main.user.rowid=m.user.rowid); |
41 DELETE FROM main.user_s; | 39 DELETE FROM main.user_s WHERE rowid NOT IN (SELECT rowid FROM m.user_s); |
42 INSERT INTO main.user_s(rowid, name, key, type, val, bin) | 40 REPLACE INTO main.user_s(rowid, name, key, type, val, bin) |
43 SELECT rowid,* FROM m.user_s; | 41 SELECT rowid,* FROM m.user_s; |
44 DELETE FROM main.user_m; | 42 DELETE FROM main.user_m WHERE rowid NOT IN (SELECT rowid FROM m.user_m); |
45 INSERT INTO main.user_m(rowid, name, key, type, val, bin) | 43 REPLACE INTO main.user_m(rowid, name, key, type, val, bin) |
46 SELECT rowid,* FROM m.user_m | 44 SELECT rowid,* FROM m.user_m |
47 WHERE key NOT LIKE '%cache%'; | 45 WHERE key NOT LIKE '%cache%'; |
48 END; | 46 END; |
49 | 47 |
50 /* Compare user tables */ | 48 /* Compare user tables */ |