diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 11 |
1 files changed, 9 insertions, 2 deletions
| @@ -19,7 +19,7 @@ double db_layout = 2.3; | |||
| 19 | 19 | ||
| 20 | int db_upgrade(d_char **error); | 20 | int db_upgrade(d_char **error); |
| 21 | 21 | ||
| 22 | int srv_open(char *basedir) | 22 | int srv_open(char *basedir, int auto_upgrade) |
| 23 | /* opens a server */ | 23 | /* opens a server */ |
| 24 | { | 24 | { |
| 25 | int ret = 0; | 25 | int ret = 0; |
| @@ -69,7 +69,14 @@ int srv_open(char *basedir) | |||
| 69 | error = xs_fmt("DEBUG level set to %d from environment", dbglevel); | 69 | error = xs_fmt("DEBUG level set to %d from environment", dbglevel); |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | ret = db_upgrade(&error); | 72 | if (auto_upgrade) |
| 73 | ret = db_upgrade(&error); | ||
| 74 | else { | ||
| 75 | if (xs_number_get(xs_dict_get(srv_config, "layout")) < db_layout) { | ||
| 76 | ret = 0; | ||
| 77 | error = xs_fmt("ERROR: db layout changed - execute 'snac upgrade' first"); | ||
| 78 | } | ||
| 79 | } | ||
| 73 | } | 80 | } |
| 74 | 81 | ||
| 75 | } | 82 | } |