]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/modules/upgrade/serv_upgrade.c
ctdldump/ctdlload: removed tables that can be re-generated by the server.
[citadel.git] / citadel / server / modules / upgrade / serv_upgrade.c
index e08c65d17c859139469fb1a983542af59f4f9ff6..b06e19d19db198a9528005f7360725bb028b022a 100644 (file)
@@ -441,6 +441,18 @@ void create_default_admin_account(void) {
 }
 
 
+void regenerate_secondary_indices(void) {
+       syslog(LOG_INFO, "regenerate_secondary_indices has been activated.");
+
+       rebuild_usersbynumber();
+       rebuild_euid_index();
+       CtdlRebuildDirectoryIndex();
+       // we also need to trigger the fulltext foo
+
+       CtdlSetConfigInt("regenerate_secondary_indices", 0);
+}
+
+
 // Based on the server version number reported by the existing database,
 // run in-place data format upgrades until everything is up to date.
 void pre_startup_upgrades(void) {
@@ -508,6 +520,13 @@ void pre_startup_upgrades(void) {
        if (oldver == 0) {
                create_default_admin_account();
        }
+
+       // Setting this key to nonzero causes the server to regenerate all data that can be derived
+       // from other tables: usersbynumber, directory, fulltext.
+       // The import utility (ctdlload) sets this key.
+       if (CtdlGetConfigInt("regenerate_secondary_indices") != 0) {
+               regenerate_secondary_indices();
+       }
 }