1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-06 17:33:18 +00:00

fix db_update_helper (#8089)

This commit is contained in:
欢乐马
2025-07-31 11:31:18 +08:00
committed by GitHub
parent 3de6ea5daf
commit a401b76997

View File

@@ -135,97 +135,35 @@ class DBUpdater(object):
@staticmethod
def get_ccnet_mysql_info(version):
config_path = env_mgr.central_config_dir
seafile_conf = os.path.join(config_path, 'seafile.conf')
defaults = {
'HOST': '127.0.0.1',
'PORT': '3306',
'UNIX_SOCKET': '',
}
host = os.environ.get('SEAFILE_MYSQL_DB_HOST', 'db')
port = os.environ.get('SEAFILE_MYSQL_DB_PORT', 3306)
username = os.environ.get('SEAFILE_MYSQL_DB_USER', 'seafile')
password = os.environ.get('SEAFILE_MYSQL_DB_PASSWORD')
db = os.environ.get('SEAFILE_MYSQL_DB_CCNET_DB_NAME', 'ccnet_db')
config = Utils.read_config(seafile_conf, defaults)
db_section = 'database'
if not config.has_section(db_section):
return None
type = config.get(db_section, 'type')
if type != 'mysql':
return None
try:
host = config.get(db_section, 'host')
port = config.getint(db_section, 'port')
username = config.get(db_section, 'user')
password = config.get(db_section, 'password')
db = os.environ.get('SEAFILE_MYSQL_DB_CCNET_DB_NAME', '') or 'ccnet_db'
unix_socket = config.get(db_section, 'UNIX_SOCKET')
except configparser.NoOptionError as e:
Utils.error('Database config in seafile.conf is invalid: %s' % e)
info = MySQLDBInfo(host, port, username, password, db, unix_socket)
info = MySQLDBInfo(host, int(port), username, password, db)
return info
@staticmethod
def get_seafile_mysql_info(version):
config_path = env_mgr.central_config_dir
seafile_conf = os.path.join(config_path, 'seafile.conf')
defaults = {
'HOST': '127.0.0.1',
'PORT': '3306',
'UNIX_SOCKET': '',
}
config = Utils.read_config(seafile_conf, defaults)
db_section = 'database'
host = os.environ.get('SEAFILE_MYSQL_DB_HOST', 'db')
port = os.environ.get('SEAFILE_MYSQL_DB_PORT', 3306)
username = os.environ.get('SEAFILE_MYSQL_DB_USER', 'seafile')
password = os.environ.get('SEAFILE_MYSQL_DB_PASSWORD')
db = os.environ.get('SEAFILE_MYSQL_DB_SEAFILE_DB_NAME', 'seafile_db')
if not config.has_section(db_section):
return None
type = config.get(db_section, 'type')
if type != 'mysql':
return None
try:
host = config.get(db_section, 'host')
port = config.getint(db_section, 'port')
username = config.get(db_section, 'user')
password = config.get(db_section, 'password')
db = config.get(db_section, 'db_name')
unix_socket = config.get(db_section, 'unix_socket')
except configparser.NoOptionError as e:
Utils.error('Database config in seafile.conf is invalid: %s' % e)
info = MySQLDBInfo(host, port, username, password, db, unix_socket)
info = MySQLDBInfo(host, int(port), username, password, db)
return info
@staticmethod
def get_seahub_mysql_info():
sys.path.insert(0, env_mgr.top_dir)
if env_mgr.central_config_dir:
sys.path.insert(0, env_mgr.central_config_dir)
try:
import seahub_settings # pylint: disable=F0401
except ImportError as e:
Utils.error('Failed to import seahub_settings.py: %s' % e)
host = os.environ.get('SEAFILE_MYSQL_DB_HOST', 'db')
port = os.environ.get('SEAFILE_MYSQL_DB_PORT', 3306)
username = os.environ.get('SEAFILE_MYSQL_DB_USER', 'seafile')
password = os.environ.get('SEAFILE_MYSQL_DB_PASSWORD')
db = os.environ.get('SEAFILE_MYSQL_DB_SEAHUB_DB_NAME', 'seahub_db')
if not hasattr(seahub_settings, 'DATABASES'):
return None
try:
d = seahub_settings.DATABASES['default']
if d['ENGINE'] != 'django.db.backends.mysql':
return None
host = d.get('HOST', '127.0.0.1')
port = int(d.get('PORT', 3306))
username = d['USER']
password = d['PASSWORD']
db = d['NAME']
unix_socket = host if host.startswith('/') else None
except KeyError:
Utils.error('Database config in seahub_settings.py is invalid: %s' % e)
info = MySQLDBInfo(host, port, username, password, db, unix_socket)
info = MySQLDBInfo(host, int(port), username, password, db)
return info
def update_ccnet_sql(self, ccnet_sql):