Make postgres database error slightly more helpful

This commit is contained in:
Erik Johnston 2015-04-29 12:12:18 +01:00
parent 4932a7e2d9
commit cd0864121b
2 changed files with 17 additions and 13 deletions

View File

@ -245,24 +245,27 @@ class SynapseHomeServer(HomeServer):
db_conn.cursor(), database_engine, self.hostname
)
if not all_users_native:
sys.stderr.write(
"\n"
"******************************************************\n"
quit_with_error(
"Found users in database not native to %s!\n"
"You cannot changed a synapse server_name after it's been configured\n"
"******************************************************\n"
"\n" % (self.hostname,)
"You cannot changed a synapse server_name after it's been configured"
% (self.hostname,)
)
sys.exit(1)
try:
database_engine.check_database(db_conn.cursor())
except IncorrectDatabaseSetup as e:
sys.stderr.write("*" * len(e.message) + '\n')
sys.stderr.write(e.message)
sys.stderr.write('\n')
sys.stderr.write("*" * len(e.message) + '\n')
sys.exit(2)
quit_with_error(e.message)
def quit_with_error(error_string):
message_lines = error_string.split("\n")
line_length = max([len(l) for l in message_lines]) + 2
sys.stderr.write("*" * line_length + '\n')
for line in message_lines:
if line.strip():
sys.stderr.write(" %s\n" % (line.strip(),))
sys.stderr.write("*" * line_length + '\n')
sys.exit(1)
def get_version_string():

View File

@ -28,7 +28,8 @@ class PostgresEngine(object):
rows = txn.fetchall()
if rows and rows[0][0] != "UTF8":
raise IncorrectDatabaseSetup(
"Database has incorrect encoding: '%s' instead of 'UTF8'"
"Database has incorrect encoding: '%s' instead of 'UTF8'\n"
"See docs/postgres.rst for more information."
% (rows[0][0],)
)