1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-09-09 11:18:54 +00:00

Create tables from sqls when unit test.

This commit is contained in:
ly1217
2019-05-21 23:49:47 -07:00
parent b73e3ef989
commit 068c256004
2 changed files with 48 additions and 5 deletions

View File

@@ -193,6 +193,7 @@ def main():
def start_and_test_with_db(db): def start_and_test_with_db(db):
info('Setting up seafile server with %s database', db) info('Setting up seafile server with %s database', db)
server = ServerCtl( server = ServerCtl(
TOPDIR,
INSTALLDIR, INSTALLDIR,
db=db, db=db,
# Use the newly built seaf-server (to avoid "make install" each time when developping locally) # Use the newly built seaf-server (to avoid "make install" each time when developping locally)

View File

@@ -22,7 +22,7 @@ logger = logging.getLogger(__name__)
class ServerCtl(object): class ServerCtl(object):
def __init__(self, datadir, db='sqlite3', seaf_server_bin='seaf-server', ccnet_server_bin='ccnet-server'): def __init__(self, topdir, datadir, db='sqlite3', seaf_server_bin='seaf-server', ccnet_server_bin='ccnet-server'):
self.db = db self.db = db
self.datadir = datadir self.datadir = datadir
self.central_conf_dir = join(datadir, 'conf') self.central_conf_dir = join(datadir, 'conf')
@@ -37,6 +37,8 @@ class ServerCtl(object):
self.ccnet_server_bin = ccnet_server_bin self.ccnet_server_bin = ccnet_server_bin
self.seaf_server_bin = seaf_server_bin self.seaf_server_bin = seaf_server_bin
self.sql_dir = join(topdir, 'seafile-server', 'scripts', 'sql')
self.ccnet_proc = None self.ccnet_proc = None
self.seafile_proc = None self.seafile_proc = None
@@ -69,7 +71,6 @@ class ServerCtl(object):
ccnet_conf = join(self.central_conf_dir, 'ccnet.conf') ccnet_conf = join(self.central_conf_dir, 'ccnet.conf')
ccnet_db_conf = '''\ ccnet_db_conf = '''\
[Database] [Database]
CREATE_TABLES = true
''' '''
with open(ccnet_conf, 'a+') as fp: with open(ccnet_conf, 'a+') as fp:
fp.write('\n') fp.write('\n')
@@ -86,7 +87,6 @@ USER = seafile
PASSWD = seafile PASSWD = seafile
DB = ccnet DB = ccnet
CONNECTION_CHARSET = utf8 CONNECTION_CHARSET = utf8
CREATE_TABLES = true
''' '''
with open(ccnet_conf, 'a+') as fp: with open(ccnet_conf, 'a+') as fp:
fp.write('\n') fp.write('\n')
@@ -113,7 +113,6 @@ CREATE_TABLES = true
seafile_conf = join(self.central_conf_dir, 'seafile.conf') seafile_conf = join(self.central_conf_dir, 'seafile.conf')
seafile_db_conf = '''\ seafile_db_conf = '''\
[database] [database]
create_tables = true
''' '''
with open(seafile_conf, 'a+') as fp: with open(seafile_conf, 'a+') as fp:
fp.write('\n') fp.write('\n')
@@ -130,7 +129,6 @@ user = seafile
password = seafile password = seafile
db_name = seafile db_name = seafile
connection_charset = utf8 connection_charset = utf8
create_tables = true
''' '''
with open(seafile_conf, 'a+') as fp: with open(seafile_conf, 'a+') as fp:
fp.write('\n') fp.write('\n')
@@ -158,12 +156,56 @@ create_tables = true
raise TryAgain raise TryAgain
def start(self): def start(self):
logger.info('Starting to create ccnet and seafile db tables')
self.create_database_tables()
logger.info('Starting ccnet server') logger.info('Starting ccnet server')
self.start_ccnet() self.start_ccnet()
self.wait_ccnet_ready() self.wait_ccnet_ready()
logger.info('Starting seafile server') logger.info('Starting seafile server')
self.start_seafile() self.start_seafile()
def create_database_tables(self):
if self.db == 'mysql':
ccnet_sql_path = join(self.sql_dir, 'mysql', 'ccnet.sql')
seafile_sql_path = join(self.sql_dir, 'mysql', 'seafile.sql')
sql = '''USE ccnet; source {};
USE seafile; source {};'''.format(ccnet_sql_path, seafile_sql_path)
shell('mysql -u root', inputdata=sql, wait=False)
else:
config_sql_path = join(self.sql_dir, 'sqlite', 'config.sql')
groupmgr_sql_path = join(self.sql_dir, 'sqlite', 'groupmgr.sql')
org_sql_path = join(self.sql_dir, 'sqlite', 'org.sql')
user_sql_path = join(self.sql_dir, 'sqlite', 'user.sql')
seafile_sql_path = join(self.sql_dir, 'sqlite', 'seafile.sql')
misc_dir = join(self.ccnet_conf_dir, 'misc')
os.mkdir (misc_dir, 0755)
groupmgr_dir = join(self.ccnet_conf_dir, 'GroupMgr')
os.mkdir (groupmgr_dir, 0755)
orgmgr_dir = join(self.ccnet_conf_dir, 'OrgMgr')
os.mkdir (orgmgr_dir, 0755)
usermgr_dir = join(self.ccnet_conf_dir, 'PeerMgr')
os.mkdir (usermgr_dir, 0755)
config_db_path = join(misc_dir, 'config.db')
groupmgr_db_path = join(groupmgr_dir, 'groupmgr.db')
orgmgr_db_path = join(orgmgr_dir, 'orgmgr.db')
usermgr_db_path = join(usermgr_dir, 'usermgr.db')
seafile_db_path = join(self.seafile_conf_dir, 'seafile.db')
sql = '.read {}'.format(config_sql_path)
shell('sqlite3 ' + config_db_path, inputdata=sql, wait=False)
sql = '.read {}'.format(groupmgr_sql_path)
shell('sqlite3 ' + groupmgr_db_path, inputdata=sql, wait=False)
sql = '.read {}'.format(org_sql_path)
shell('sqlite3 ' + orgmgr_db_path, inputdata=sql, wait=False)
sql = '.read {}'.format(user_sql_path)
shell('sqlite3 ' + usermgr_db_path, inputdata=sql, wait=False)
sql = '.read {}'.format(user_sql_path)
shell('sqlite3 ' + usermgr_db_path, inputdata=sql, wait=False)
sql = '.read {}'.format(seafile_sql_path)
shell('sqlite3 ' + seafile_db_path, inputdata=sql, wait=False)
def start_ccnet(self): def start_ccnet(self):
cmd = [ cmd = [
self.ccnet_server_bin, self.ccnet_server_bin,