From 744d370f0b6fd380e96ce60e263aad3b6a08ab55 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 29 Mar 2022 17:40:27 +0300 Subject: [PATCH] Fix error when crypto dependencies aren't installed --- maubot/__main__.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/maubot/__main__.py b/maubot/__main__.py index d3e4671..c9a8c07 100644 --- a/maubot/__main__.py +++ b/maubot/__main__.py @@ -82,14 +82,15 @@ class Maubot(Program): ) init_db(self.db) - if self.config["crypto_database"] == "default": - self.crypto_db = self.db - else: - self.crypto_db = Database.create( - self.config["crypto_database"], - upgrade_table=PgCryptoStore.upgrade_table, - ignore_foreign_tables=self.args.ignore_foreign_tables, - ) + if PgCryptoStore: + if self.config["crypto_database"] == "default": + self.crypto_db = self.db + else: + self.crypto_db = Database.create( + self.config["crypto_database"], + upgrade_table=PgCryptoStore.upgrade_table, + ignore_foreign_tables=self.args.ignore_foreign_tables, + ) if self.config["plugin_databases.postgres"] == "default": if self.db.scheme != Scheme.POSTGRES: @@ -135,16 +136,17 @@ class Maubot(Program): ignore_unsupported = self.args.ignore_unsupported_database self.db.upgrade_table.allow_unsupported = ignore_unsupported self.state_store.upgrade_table.allow_unsupported = ignore_unsupported - PgCryptoStore.upgrade_table.allow_unsupported = ignore_unsupported try: await self.db.start() await self.state_store.upgrade_table.upgrade(self.db) if self.plugin_postgres_db and self.plugin_postgres_db is not self.db: await self.plugin_postgres_db.start() - if self.crypto_db and self.crypto_db is not self.db: - await self.crypto_db.start() - else: - await PgCryptoStore.upgrade_table.upgrade(self.db) + if self.crypto_db: + PgCryptoStore.upgrade_table.allow_unsupported = ignore_unsupported + if self.crypto_db is not self.db: + await self.crypto_db.start() + else: + await PgCryptoStore.upgrade_table.upgrade(self.db) except DatabaseException as e: self.log.critical("Failed to initialize database", exc_info=e) if e.explanation: