#python #sqlalchemy
#python #sqlalchemy
Вопрос:
Это то, что у меня есть в настоящее время, если / когда я создаю новую модель, мне нужно пойти и добавить в нее новую строку…. Теперь он становится длиннее, чем хотелось бы, и начинает меня беспокоить.
Я использую более короткий способ, однако, похоже, я не могу его найти. Я пытался реализовать Base.metadata.create_all(engine)
, однако мне не удалось заставить его работать самостоятельно.
Любая помощь?
import pathlib
from sqlalchemy import create_engine
from sqlalchemy.orm import backref, relationship, sessionmaker
from .models import *
path = pathlib.Path(__file__).parent.absolute()
engine = create_engine(f'sqlite:///{path}/data.db')
Session = sessionmaker(bind=engine)
session = Session()
if __name__ == "__main__":
# order is important
Guild.__table__.create(bind=engine)
GuildConfig.__table__.create(bind=engine)
User.__table__.create(bind=engine)
Role.__table__.create(bind=engine)
Command.__table__.create(bind=engine)
Message.__table__.create(bind=engine)
Trigger.__table__.create(bind=engine)
GuildCommand.__table__.create(bind=engine)
GuildCommandRole.__table__.create(bind=engine)
UserMute.__table__.create(bind=engine)
UserKick.__table__.create(bind=engine)
UserBan.__table__.create(bind=engine)
Reaction.__table__.create(bind=engine)
ReactionRole.__table__.create(bind=engine)
Комментарии:
1. Что пошло не так
create_all()
? Похоже на ситуацию XY.2. Ситуация с XY? не могли бы вы подробнее остановиться на этом…. Я совершенно новичок в любом языке программирования… Кроме того, я воссоздам проблему, с которой я столкнулся, и добавлю трассировку в следующий комментарий.
3. Я ….. должно быть, делал что-то не так (?) Похоже, я попробовал это снова (с новым обновлением SQLAlchemy), и все это, кажется, работает? Это …. странно
4. XY используется для описания ситуации, когда кто-то думает, что Y является решением для X, и поэтому спрашивает о Y, хотя, возможно, было бы выгоднее спросить о X напрямую.
Ответ №1:
Проблема решена, просто нужно проверить все взаимосвязи и убедиться, что все работает так, как задумано.
Также было выполнено обновление до последней версии SQLAlchemy (1.3.20), и проблема, похоже, решена.