diff --git a/.mypy.ini b/.mypy.ini
index 33da901535104d8ab2cc632d7c1e70828df61421..fd577c876ac957e0eb680bf6d1e85e12a98557e1 100644
--- a/.mypy.ini
+++ b/.mypy.ini
@@ -1,3 +1,3 @@
 [mypy]
-plugins=sqlmypy
+plugins=sqlalchemy.ext.mypy.plugin
 python_executable=venv/bin/python3
diff --git a/constraints.txt b/constraints.txt
index f1e61c46479754055c38fd8f622591b8e8d26ff5..b510a27c9fda073bb05db6da5ac65a024f9d54cf 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -38,6 +38,7 @@ requests==2.28.1
 six==1.16.0
 SQLAlchemy==1.4.40
 sqlalchemy-stubs==0.4
+sqlalchemy2-stubs==0.0.2a25
 tomli==2.0.1
 types-bleach==5.0.3
 types-Flask-SQLAlchemy==2.5.9
diff --git a/mo/db.py b/mo/db.py
index f88b6b617f5f9c1e7edc955869d5618cc47fc46a..cc57d4bf74a22e3fad393a24740d8671c0f82fcd 100644
--- a/mo/db.py
+++ b/mo/db.py
@@ -8,7 +8,7 @@ import locale
 import os
 import re
 from sqlalchemy import \
-    Boolean, Column, DateTime, ForeignKey, Integer, String, Text, UniqueConstraint, \
+    Boolean, Column, DateTime, Enum, ForeignKey, Integer, String, Text, UniqueConstraint, \
     text, func, \
     create_engine, inspect, select
 from sqlalchemy.engine import Engine
@@ -20,23 +20,13 @@ from sqlalchemy.ext.declarative import declarative_base
 from sqlalchemy.sql.expression import CTE
 from sqlalchemy.sql.functions import ReturnTypeFromArgs
 from sqlalchemy.sql.sqltypes import Numeric
-from typing import Optional, List, Tuple
+from typing import Any, Optional, List, Tuple
 
 import mo
 import mo.config as config
 from mo.place_level import place_levels, PlaceLevel
 from mo.util_format import timeformat_short, timedelta, time_and_timedelta
 
-# HACK: Work-around for https://github.com/dropbox/sqlalchemy-stubs/issues/114
-from typing import TYPE_CHECKING, TypeVar, Type, Any
-if TYPE_CHECKING:
-    from sqlalchemy.sql.type_api import TypeEngine
-    T = TypeVar('T')
-    class Enum(TypeEngine[T]):
-        def __init__(self, enum: Type[T], **kwargs: Any) -> None: ...
-else:
-    from sqlalchemy import Enum
-
 
 # Funkce f_unaccent je definovaná v db.ddl, naučme Alchymii volat ji:
 class f_unaccent(ReturnTypeFromArgs):
diff --git a/setup.py b/setup.py
index 50c87e6870b7e06b3c5a38a063d1a18cd81f48c8..41d797367b7b28eac72e96f6a48f0ce357441feb 100644
--- a/setup.py
+++ b/setup.py
@@ -47,7 +47,7 @@ setuptools.setup(
         'python-poppler',
         'pyzbar',
         'requests',
-        'sqlalchemy',
+        'sqlalchemy[mypy]',
         'uwsgidecorators',
         # Používáme pro vývoj, ale aby je pylsp našel, musí být ve stejném virtualenvu
         # jako ostatní knihovny.