Skip to content

Commit 19aab8b

Browse files
committed
🐛 fix(alembic): remove await_fallback() use
1 parent 930ef40 commit 19aab8b

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

nonebot_plugin_orm/param.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import sys
44
from itertools import repeat
5-
from typing import Any, cast
65
from dataclasses import dataclass
76
from operator import methodcaller
7+
from typing import Any, Type, cast
88
from inspect import Parameter, isclass
99

1010
from pydantic.fields import FieldInfo
@@ -166,7 +166,7 @@ def _check_param(
166166
if depends_inner is not None:
167167
dependency = compile_dependency(depends_inner.dependency, option)
168168
elif all(map(isclass, models)) and all(map(issubclass, models, repeat(Model))):
169-
models = cast(Tuple[Model, ...], models)
169+
models = cast(Tuple[Type[Model], ...], models)
170170
dependency = compile_dependency(
171171
select(*models).where(
172172
*(

nonebot_plugin_orm/templates/generic/env.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
from __future__ import annotations
22

3+
import asyncio
34
from typing import cast
45

56
from alembic import context
67
from sqlalchemy import Connection
7-
from sqlalchemy.util import await_fallback
8+
from sqlalchemy.util import await_only
89
from sqlalchemy.ext.asyncio import AsyncEngine
910

1011
from nonebot_plugin_orm.env import no_drop_table
@@ -81,4 +82,9 @@ async def run_migrations_online() -> None:
8182
if context.is_offline_mode():
8283
run_migrations_offline()
8384
else:
84-
await_fallback(run_migrations_online())
85+
coro = run_migrations_online()
86+
87+
try:
88+
asyncio.run(coro)
89+
except RuntimeError:
90+
await_only(coro)

nonebot_plugin_orm/templates/multidb/env.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import asyncio
44
from typing import cast
5+
from contextlib import suppress
56

67
from alembic import context
7-
from sqlalchemy.util import await_fallback
8+
from sqlalchemy.util import await_only
89
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncConnection
910
from sqlalchemy import MetaData, Connection, TwoPhaseTransaction
1011

@@ -124,4 +125,9 @@ async def run_migrations_online() -> None:
124125
if context.is_offline_mode():
125126
run_migrations_offline()
126127
else:
127-
await_fallback(run_migrations_online())
128+
coro = run_migrations_online()
129+
130+
with suppress(RuntimeError):
131+
asyncio.run(coro)
132+
133+
await_only(coro)

0 commit comments

Comments
 (0)