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 */

yatex.org