diff --git a/ci/run.py b/ci/run.py index ec9620a..08e560a 100755 --- a/ci/run.py +++ b/ci/run.py @@ -216,7 +216,10 @@ def main(): def start_and_test_with_db(db): - fileservers = ('go_fileserver', 'c_fileserver') + if db == 'sqlite3': + fileservers = ('c_fileserver') + else: + fileservers = ('go_fileserver', 'c_fileserver') for fileserver in fileservers: shell('rm -rf {}/*'.format(INSTALLDIR)) info('Setting up seafile server with %s database, use %s', db, fileserver) diff --git a/controller/seafile-controller.c b/controller/seafile-controller.c index 6e95cbb..f4c7b80 100644 --- a/controller/seafile-controller.c +++ b/controller/seafile-controller.c @@ -488,6 +488,17 @@ should_start_go_fileserver() ret = FALSE; } } + + if (ret) { + char *type = NULL; + type = g_key_file_get_string (key_file, "database", "type", NULL); + if (!type || g_strcmp0 (type, "mysql") != 0) { + seaf_message ("Use C fileserver because go fileserver does not support sqlite."); + ret = FALSE; + } + g_free (type); + } + out: g_key_file_free (key_file); g_free (seafile_conf); diff --git a/server/seafile-session.c b/server/seafile-session.c index ba753ef..dfe7e69 100644 --- a/server/seafile-session.c +++ b/server/seafile-session.c @@ -114,6 +114,14 @@ seafile_session_new(const char *central_config_dir, session->go_fileserver = g_key_file_get_boolean (config, "fileserver", "use_go_fileserver", NULL); + if (session->go_fileserver) { + char *type = NULL; + type = g_key_file_get_string (config, "database", "type", NULL); + if (!type || g_strcmp0 (type, "mysql") != 0) { + session->go_fileserver = FALSE; + } + g_free (type); + } if (load_database_config (session) < 0) { seaf_warning ("Failed to load database config.\n");