commit 14bcc0f
default
·
2022-11-23 12:49:30 +0000 UTC
parent 3e3e091
New db_layout 2.1.
1 files changed,
+19,
-8
M
data.c
M
data.c
+19,
-8
1@@ -13,7 +13,7 @@
2 #include <glob.h>
3 #include <sys/stat.h>
4
5-double db_layout = 2.0;
6+double db_layout = 2.1;
7
8
9 int db_upgrade(d_char **error);
10@@ -1246,25 +1246,34 @@ int db_upgrade(d_char **error)
11
12 do {
13 char *layout = xs_dict_get(srv_config, "layout");
14+ double nf;
15
16- f = xs_number_get(layout);
17+ f = nf = xs_number_get(layout);
18
19 if (f < 2.0) {
20- *error = xs_fmt("ERROR: unsupported old disk layout %lf\n", f);
21+ *error = xs_fmt("ERROR: unsupported old disk layout %1.1lf\n", f);
22 ret = 0;
23 break;
24 }
25-/* else
26+ else
27 if (f < 2.1) {
28- srv_log(xs_dup("upgrading db layout to version 2.1"));
29-
30 xs *dir = xs_fmt("%s/object", srv_basedir);
31 mkdir(dir, 0755);
32
33- xs *nv = xs_number_new(2.1);
34+ nf = 2.1;
35+ }
36+
37+ if (f < nf) {
38+ f = nf;
39+ xs *nv = xs_number_new(f);
40 srv_config = xs_dict_set(srv_config, "layout", nv);
41+
42+ srv_log(xs_fmt("upgraded db layout to version %1.1lf", f));
43 changed++;
44- }*/
45+ }
46+ else
47+ break;
48+
49 } while (f < db_layout);
50
51 if (f > db_layout) {
52@@ -1281,6 +1290,8 @@ int db_upgrade(d_char **error)
53 xs *j = xs_json_dumps_pp(srv_config, 4);
54 fwrite(j, strlen(j), 1, f);
55 fclose(f);
56+
57+ srv_log(xs_fmt("upgraded db %s after %d changes", fn, changed));
58 }
59 else
60 ret = 0;