Tag: sqlalchemy

Можно ли выгрузить декларативные классы в SQLAlchemy?

Я работаю над библиотекой, где пользователь сможет просто объявить несколько классов, которые автоматически поддерживаются базой данных. Короче говоря, где-то скрытый в коде, есть from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class LibraryBase(Base): # important library stuff и тогда пользователь должен сделать class MyStuff(LibraryBase): # important personal stuff class MyStuff_2(LibraryBase): # important personal stuff mystuff = […]

Как изменяется база данных треков SQLAlchemy?

Интересно, как SQLAlchemy отслеживает изменения, которые сделаны за пределами SQLAlchemy (например, вручную)? До сих пор я использовал db.session.commit() перед каждым значением, которое можно изменить за пределами SQLAlchemy. Это плохая практика? Если да, есть ли лучший способ убедиться, что у меня будет последнее значение? Я на самом деле создал небольшой скрипт ниже, чтобы проверить это, и, […]

Sqlalchemy жалуется, что внешний ключ не существует, но на самом деле он существует

У меня есть следующие модели: class Look(Base): __tablename__ = "looks" id = Column(Integer, primary_key=True) url = Column(String, nullable=False, unique=True) class Similarity(Base): __tablename__ = 'similarities' __table_args__ = (UniqueConstraint('look_id_small', 'look_id_big'),) id = Column(Integer, primary_key=True) look_id_small = Column(Integer, ForeignKey('looks.id'), nullable=False) look_id_big = Column(Integer, ForeignKey('looks.id'), nullable=False) Когда я запускаю этот код: try: with session.begin_nested(): similarity = Similarity() similarity.look_id_small, similarity.look_id_big […]

SQLAlchemy связывание ассоциации прокси для правнуков?

У меня есть четыре класса: Group , Parent , Child , Toy . Group есть отношения parents указывающие на Parent Parent есть children отношения, указывающие на Child Child есть toys указывающие на toys Parent есть toys association_proxy которая производит все Toy которые есть у детей Parent . Я хочу получить все игрушки в группе. Я […]

Временная таблица SQLAlchemy с декларативной базой

Мне нужна временная таблица в моей программе. Я видел, что это может быть достигнуто с помощью синтаксиса «mapper» следующим образом: t = Table( 't', metadata, Column('id', Integer, primary_key=True), # … prefixes=['TEMPORARY'], ) Видно здесь Но, весь мой код использует декларативную базу, это то, что я понимаю, и я хотел бы придерживаться ее. Существует возможность использования […]

Избегайте дубликатов с завода factory_boy

Я использую factory_boy для создания тестовых приборов. У меня есть две простые фабрики, поддерживаемые моделями SQLAlchemy (упрощенный ниже). Я хотел бы иметь возможность вызвать AddressFactory.create() несколько раз и создать его, если он еще не существует, в противном случае я хочу, чтобы он повторно использовал существующую запись. class CountryFactory(factory.Factory): FACTORY_FOR = Country cc = "US" name […]

sqlalchemy.orm.exc.UnmappedInstanceError в колбе

Я читал документы SQLAlchemy, но я их не понимаю. Ошибка (UnmappedInstanceError) говорит, что что-то не отображается. Что не отображается? Я действительно не получаю sqlalchemy, и я хочу вернуться к использованию голого sqlite, но так много людей рекомендуют это, поэтому я подумал, что я должен это изучить. Вот трассировка: File "C:\Users\Me\repos\mandj\venv\lib\site-packages\flask\app.py", line 1836, in __call__ return […]

SqlAlchemy выберите с max, group_by и order_by

Я должен перечислять последние измененные ресурсы для каждой группы, потому что я могу сделать этот запрос: model.Session.query( model.Resource, func.max(model.Resource.last_modified) ).group_by(model.Resource.resource_group_id).order_by( model.Resource.last_modified.desc()) Но SqlAlchemy жалуется: ProgrammingError: (ProgrammingError) column "resource.id" must appear in the GROUP BY clause or be used in an aggregate function Как я могу выбрать только resource_group_id и last_modified столбцы? В SQL я хочу, […]

SQLAlchemy удаление многих-ко-многим сирот

Я пытаюсь использовать SQLAlchemy для реализации базовой модели групп пользователей, где пользователи могут иметь несколько групп и групп, которые могут иметь несколько пользователей. Когда группа становится пустой, я хочу, чтобы группа была удалена (вместе с другими вещами, связанными с группой. К счастью, каскад SQLAlchemy отлично справляется с этими более простыми ситуациями). Проблема в том, что […]

Прокси-сервер SQLAlchemy с двунаправленной связью

Обновить: Для тех, кто имеет эту проблему, с самой последней версией SQLAlchemy это поведение было исправлено. Исходный вопрос: У меня возникла проблема с правильной настройкой прокси-сервера. Использование примеров моделей здесь: http://docs.sqlalchemy.org/en/rel_0_7/orm/extensions/associationproxy.html#simplifying-association-objects Но изменение UserKeyword в этой строке: keyword = relationship("Keyword", backref=backref("user_keywords", cascade="all, delete-orphan")) и добавив это к ключевому слову: users = association_proxy('user_keywords', 'user') Таким образом, […]

Python - лучший язык программирования в мире.