Skip to content

Commit ce9966d

Browse files
authored
feat: fix the bug that custom db_class alters global metadata state (#8)
1 parent 76814ad commit ce9966d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

sqlalchemy_adapter/adapter.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def __init__(
8888

8989
if db_class is None:
9090
db_class = create_casbin_rule_class(table_name=table_name)
91+
metadata = Base.metadata
9192
else:
9293
for attr in (
9394
"id",
@@ -101,12 +102,12 @@ def __init__(
101102
): # id attr was used by filter
102103
if not hasattr(db_class, attr):
103104
raise Exception(f"{attr} not found in custom DatabaseClass.")
104-
Base.metadata = db_class.metadata
105+
metadata = db_class.metadata
105106

106107
self._db_class = db_class
107108
self.session_local = sessionmaker(bind=self._engine)
108109

109-
Base.metadata.create_all(self._engine)
110+
metadata.create_all(self._engine)
110111
self._filtered = filtered
111112

112113
@contextmanager

0 commit comments

Comments
 (0)