1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-14 14:22:34 +00:00

Add config option 'create_tables'.

This commit is contained in:
cuihaikuo
2018-07-05 11:58:33 +08:00
parent fe76dd1468
commit 6eab55e149
9 changed files with 37 additions and 5 deletions

View File

@@ -127,6 +127,8 @@ seaf_branch_manager_init (SeafBranchManager *mgr)
static int static int
open_db (SeafBranchManager *mgr) open_db (SeafBranchManager *mgr)
{ {
if (!mgr->seaf->create_tables)
return 0;
#ifndef SEAFILE_SERVER #ifndef SEAFILE_SERVER
char *db_path; char *db_path;

View File

@@ -61,6 +61,7 @@ mysql_db_start (SeafileSession *session)
char *host, *user, *passwd, *db, *unix_socket, *charset; char *host, *user, *passwd, *db, *unix_socket, *charset;
int port; int port;
gboolean use_ssl = FALSE; gboolean use_ssl = FALSE;
gboolean create_tables = TRUE;
int max_connections = 0; int max_connections = 0;
GError *error = NULL; GError *error = NULL;
@@ -99,6 +100,12 @@ mysql_db_start (SeafileSession *session)
use_ssl = g_key_file_get_boolean (session->config, use_ssl = g_key_file_get_boolean (session->config,
"database", "use_ssl", NULL); "database", "use_ssl", NULL);
if (g_key_file_has_key (session->config, "database", "create_tables", NULL)) {
create_tables = g_key_file_get_boolean (session->config,
"database", "create_tables", NULL);
}
session->create_tables = create_tables;
charset = seaf_key_file_get_string (session->config, charset = seaf_key_file_get_string (session->config,
"database", "connection_charset", NULL); "database", "connection_charset", NULL);

View File

@@ -34,6 +34,8 @@ struct _SeafileSession {
SeafBranchManager *branch_mgr; SeafBranchManager *branch_mgr;
SeafCommitManager *commit_mgr; SeafCommitManager *commit_mgr;
SeafRepoManager *repo_mgr; SeafRepoManager *repo_mgr;
gboolean create_tables;
}; };
extern SeafileSession *seaf; extern SeafileSession *seaf;

View File

@@ -33,6 +33,7 @@ struct _SeafileSession {
SeafRepoManager *repo_mgr; SeafRepoManager *repo_mgr;
SeafCfgManager *cfg_mgr; SeafCfgManager *cfg_mgr;
gboolean create_tables;
}; };
extern SeafileSession *seaf; extern SeafileSession *seaf;

View File

@@ -78,6 +78,10 @@ seaf_quota_manager_new (struct _SeafileSession *session)
int int
seaf_quota_manager_init (SeafQuotaManager *mgr) seaf_quota_manager_init (SeafQuotaManager *mgr)
{ {
if (!mgr->session->create_tables)
return 0;
SeafDB *db = mgr->session->db; SeafDB *db = mgr->session->db;
const char *sql; const char *sql;

View File

@@ -1356,6 +1356,9 @@ create_tables_pgsql (SeafRepoManager *mgr)
static int static int
create_db_tables_if_not_exist (SeafRepoManager *mgr) create_db_tables_if_not_exist (SeafRepoManager *mgr)
{ {
if (!mgr->seaf->create_tables)
return 0;
SeafDB *db = mgr->seaf->db; SeafDB *db = mgr->seaf->db;
int db_type = seaf_db_type (db); int db_type = seaf_db_type (db);

View File

@@ -192,17 +192,25 @@ seafile_session_init (SeafileSession *session)
if (seaf_fs_manager_init (session->fs_mgr) < 0) if (seaf_fs_manager_init (session->fs_mgr) < 0)
return -1; return -1;
if (seaf_branch_manager_init (session->branch_mgr) < 0) if (seaf_branch_manager_init (session->branch_mgr) < 0) {
seaf_warning ("Failed to init branch manager.\n");
return -1; return -1;
}
if (seaf_repo_manager_init (session->repo_mgr) < 0) if (seaf_repo_manager_init (session->repo_mgr) < 0) {
seaf_warning ("Failed to init repo manager.\n");
return -1; return -1;
}
if (seaf_quota_manager_init (session->quota_mgr) < 0) if (seaf_quota_manager_init (session->quota_mgr) < 0) {
seaf_warning ("Failed to init quota manager.\n");
return -1; return -1;
}
if (seaf_cfg_manager_init (session->cfg_mgr) < 0) if (session->create_tables && seaf_cfg_manager_init (session->cfg_mgr) < 0) {
seaf_warning ("Failed to init config manager.\n");
return -1; return -1;
}
seaf_mq_manager_init (session->mq_mgr); seaf_mq_manager_init (session->mq_mgr);
@@ -435,7 +443,7 @@ schedule_create_system_default_repo (SeafileSession *session)
sql = "CREATE TABLE IF NOT EXISTS SystemInfo( " sql = "CREATE TABLE IF NOT EXISTS SystemInfo( "
"info_key VARCHAR(256), info_value VARCHAR(1024))"; "info_key VARCHAR(256), info_value VARCHAR(1024))";
if (seaf_db_query (session->db, sql) < 0) if (session->create_tables && seaf_db_query (session->db, sql) < 0)
return; return;
ccnet_job_manager_schedule_job (session->job_mgr, ccnet_job_manager_schedule_job (session->job_mgr,

View File

@@ -91,6 +91,8 @@ struct _SeafileSession {
HttpServerStruct *http_server; HttpServerStruct *http_server;
ZipDownloadMgr *zip_download_mgr; ZipDownloadMgr *zip_download_mgr;
IndexBlksMgr *index_blocks_mgr; IndexBlksMgr *index_blocks_mgr;
gboolean create_tables;
}; };
extern SeafileSession *seaf; extern SeafileSession *seaf;

View File

@@ -25,6 +25,9 @@ seaf_share_manager_new (SeafileSession *seaf)
int int
seaf_share_manager_start (SeafShareManager *mgr) seaf_share_manager_start (SeafShareManager *mgr)
{ {
if (!mgr->seaf->create_tables)
return 0;
SeafDB *db = mgr->seaf->db; SeafDB *db = mgr->seaf->db;
const char *sql; const char *sql;