Add psycopg2 as an optional dependency and throw error at startup if db is not initialized

This commit is contained in:
Tulir Asokan
2019-08-07 00:00:59 +03:00
parent b4a1aacd12
commit 47cf63e0e6
4 changed files with 11 additions and 2 deletions
+5
View File
@@ -14,6 +14,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from itertools import chain
import sys
from alchemysession import AlchemySessionContainer
@@ -57,6 +58,10 @@ class TelegramBridge(Bridge):
def prepare_db(self) -> None:
super().prepare_db()
if not self.db.has_table("alembic_version"):
self.log.critical("alembic_version table not found. "
"Did you forget to `alembic upgrade head`?")
sys.exit(10)
init_db(self.db)
self.session_container = AlchemySessionContainer(
engine=self.db, table_base=Base, session=False,
+3 -1
View File
@@ -13,6 +13,8 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
from sqlalchemy.engine.base import Engine
from mautrix.bridge.db import UserProfile, RoomState
from .bot_chat import BotChat
@@ -23,7 +25,7 @@ from .telegram_file import TelegramFile
from .user import User, UserPortal, Contact
def init(db_engine) -> None:
def init(db_engine: Engine) -> None:
for table in (Portal, Message, User, Contact, UserPortal, Puppet, TelegramFile, UserProfile,
RoomState, BotChat):
table.db = db_engine
+1
View File
@@ -2,3 +2,4 @@ cryptg
Pillow
moviepy
prometheus_client
psycopg2-binary
+2 -1
View File
@@ -6,7 +6,8 @@ extras = {
"fast_crypto": ["cryptg>=0.1,<0.3"],
"webp_convert": ["Pillow>=4.3.0,<7"],
"hq_thumbnails": ["moviepy>=1.0,<2.0"],
"metrics": ["prometheus-client>=0.6.0,<0.8.0"],
"metrics": ["prometheus_client>=0.6.0,<0.8.0"],
"postgres": ["psycopg2-binary>=2,<3"],
}
extras["all"] = list({dep for deps in extras.values() for dep in deps})