Проблема переноса данных в DB Browser
Пишу на питоне бота тля тг, библиотека аиорограм. Остановился на подключении бд sql. На данный момент, должен создаться пустой файл с бд, но вместо этого выходит ошибка, такая же ошибка и при загрузке в postgresql:
File "C:\Users\Леонид\Desktop\bot2\app.py", line 12, in <module>
from database.engine import create_db, drop_db
File "C:\Users\Леонид\Desktop\bot2\database\engine.py", line 2, in <module>
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\__init__.py", line 13, in <module>
from .engine import AdaptedConnection as AdaptedConnection
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\__init__.py", line 18, in <module>
from . import events as events
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\events.py", line 19, in <module>
from .base import Connection
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\base.py", line 30, in <module>
from .interfaces import BindTyping
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\interfaces.py", line 38, in <module>
from ..sql.compiler import Compiled as Compiled
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\__init__.py", line 14, in <module>
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\compiler.py", line 61, in <module>
from . import crud
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\crud.py", line 34, in <module>
from . import dml
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\dml.py", line 34, in <module>
from . import util as sql_util
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\util.py", line 46, in <module>
from .ddl import sort_tables as sort_tables # noqa: F401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\ddl.py", line 30, in <module>
from .elements import ClauseElement
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\sql\elements.py", line 810, in <module>
class SQLCoreOperations(Generic[_T_co], ColumnOperators, TypingOnly):
...<472 lines>...
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\typing.py", line 1257, in _generic_init_subclass
super(Generic, cls).__init_subclass__(*args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "c:\Users\Леонид\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 1988, in __init_subclass__
raise AssertionError(
...<2 lines>...
)
AssertionError: Class <class 'sqlalchemy.sql.elements.SQLCoreOperations'> directly inherits TypingOnly but has additional attributes {'__static_attributes__', '__firstlineno__'}.
Библиотеки все новые. Вот части кода, в которых по моему мнению может быть, что то не так:
from sqlalchemy import DateTime, Float, String, Text, func
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class Base(DeclarativeBase):
created:Mapped[DateTime]=mapped_column(DateTime, default=func.now())
created:Mapped[DateTime]=mapped_column(DateTime, default=func.now(), onupdate=func.now())
class Product(Base):
__tablename__='product'
id: Mapped[int]= mapped_column(primary_key=True, autoincrement=True)
name: Mapped[str] = mapped_column(String(150), nullable=False)
description: Mapped[str]=mapped_column(Text)
price: Mapped[float]=mapped_column(Float(asdecimal=True), nullable=False)
image: Mapped[str]=mapped_column(String(150))
И "движок":
import os
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
from database.models import Base
engine=create_async_engine(os.getenv('DB_LITE'), echo=True)
session_maker=async_sessionmaker(bind=engine, class_=AsyncSession, expire_on_commit=False)
async def create_db():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
async def drop_db():
async with engine.begin() as conn:
await conn.run_sync(Base.metadata.drop_all)