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
|
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
|
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
|
#!/bin/bash
if [ -d ".megatest" ]
then
echo ".megatest directory present."
echo "You have already migrated. "
exit
fi
mkdir -p .megatest
cp megatest.db .megatest/main.db
sqlite3 .megatest/main.db << END_SQL
delete from tests;
delete from test_steps;
END_SQL
version_id=$(sqlite3 .megatest/main.db "select id from metadat where var = 'MEGATEST_VERSION'")
current_version=$(megatest -version)
sqlite3 .megatest/main.db "replace into metadat (id,var,val) values($version_id,'MEGATEST_VERSION','$current_version')"
sqlite3 megatest.db 'select id from runs' > runs.txt
for run in $(cat runs.txt)
do
echo "working on run id $run"
dbnum=$(($run%100))
if [ ! -f ".megatest/$dbnum.db" ]
then
dbnum=$(($run%100))
cp megatest.db .megatest/$dbnum.db
sqlite3 .megatest/$dbnum.db << END_SQL
delete from tests where run_id != $run;
delete from test_data;
delete from test_meta;
delete from test_rundat;
delete from test_steps where not exists ( select id from tests where tests.id = test_steps.test_id);
replace into metadat (id,var,val) values($version_id,'MEGATEST_VERSION','$current_version');
cp megatest.db .megatest/$dbnum.db
sqlite3 .megatest/$dbnum.db << END_SQL
delete from tests where run_id in (select id from runs where id%100!=$dbnum);
delete from test_data;
delete from test_meta;
delete from test_rundat;
delete from test_steps where not exists ( select id from tests where tests.id = test_steps.test_id);
replace into metadat (id,var,val) values($version_id,'MEGATEST_VERSION','$current_version');
VACUUM;
END_SQL
fi
done
|