Tag: sqlalchemy

Можно ли выполнять код при импорте модуля?

Я разрабатываю небольшое приложение GUI для обертывания sqlite DB (простые операции CRUD). Я создал три модели m_person ( m_person , m_card.py , m_loan.py , все в папке /models ) и ранее имел следующий код вверху каждого из них: from sqlalchemy import Table, Column, create_engine from sqlalchemy import Integer, ForeignKey, String, Unicode from sqlalchemy.ext.declarative import declarative_base […]

Использование предложения NOT EXISTS в запросе ORM sqlalchemy

Я хочу преобразовать следующий необработанный SQL-запрос в запрос ORM sqlalchemy: SELECT * FROM kwviolations AS kwviol WHERE kwviol.proj_id=1 AND NOT EXISTS (SELECT * FROM kwmethodmetrics AS kwmetrics WHERE kwmetrics.kw_id=kwviol.kw_id AND kwmetrics.checkpoint_id=5); Я попробовал следующий запрос ORM, но не смог: self.session.query(KWViolations).filter(KWViolations.proj_id==project.id).\ filter(and_(~KWViolations.kw_id.any(KWMethodMetrics.kw_id==KWViolations.kw_id),KWMethodMetrics.checkpoint_id==checkpoint.id)) Кто-нибудь может помочь? заранее спасибо

Sqlalchemy session.refresh не обновляет объект

У меня есть следующее отображение (прямо из примеров SA): class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) fullname = Column(String) password = Column(String) Я работаю с MySql DB, а таблица имеет механизм innoDB. У меня есть одна запись в моей таблице: 1 | 'user1' | 'user1 test' | 'password' Я открыл […]

Как сопоставить один класс с несколькими таблицами с SQLAlchemy?

Допустим, что у меня есть структура базы данных с тремя таблицами, которые выглядят так: items – item_id – item_handle attributes – attribute_id – attribute_name item_attributes – item_attribute_id – item_id – attribute_id – attribute_value Я хотел бы иметь возможность сделать это в SQLAlchemy: item = Item('item1') item.foo = 'bar' session.add(item) session.commit() item1 = session.query(Item).filter_by(handle='item1').one() print item1.foo […]

Python: взаимодействие со сложным хранилищем данных

Мы много работали над разработкой полноразмерной модели базы данных нашей проблемы, и теперь пришло время начать кодирование. В наших предыдущих проектах использовались ручные запросы, построенные с помощью строковых манипуляций. Есть ли лучшая / стандартная практика для взаимодействия между python и сложной компоновкой базы данных? Я кратко оценил SQLAlchemy, SQLObject и Django-ORM, но (возможно, что-то не […]

Предельное переполнение лимита Sql Alchemy QueuePool

У меня есть приложение Sql Alchemy, которое возвращает TimeOut: TimeoutError: предел QueuePool превышения переполнения 5-го уровня 10, тайм-аут соединения, тайм-аут 30 Я читал в другой записи, что это происходит, когда я не закрываю сессию, но я не знаю, относится ли это к моему коду: Я подключаюсь к базе данных в init.py: from .dbmodels import ( […]

SQLAlchemy – ForeignKey не может найти таблицу

Идет МЕНТАЛЬ . Получение этой ошибки при попытке создать экземпляр класса ConsumerAdvice . Foreign key associated with column 'tbConsumerAdvice.ConsumerAdviceCategory_ID' could not find table 'tbConsumerAdviceCategories' with which to generate a foreign key to target column 'ID_ConsumerAdviceCategories' Вот определения классов: class ConsumerAdviceCategory(Base): __tablename__ = 'tbConsumerAdviceCategories' __table_args__ = {'schema':'dbo'} ID_ConsumerAdviceCategories = Column(INTEGER, Sequence('idcac'),\ primary_key=True) Name = Column(VARCHAR(50), nullable=False) […]

(Только) генерировать SQL-код с SqlAlchemy

Могу ли я использовать ORM-Mapper SqlAlchemy для генерации SQL-кода? С помощью простых таблиц я могу использовать код как print users_table.select() print users_table.insert() print users_table.update() print users_table.delete() Но с ORM я только нашел способ для SELECT-Statement: TestUser = User("John", "Doe") print session.query(User) Как я могу сгенерировать SQL для INSERT / UPDATE / DELETE (без реального управления […]

sqlalchemy: почему я не могу обновить func.now (), но могу использовать 'now ()'?

… когда я пытаюсь сделать запрос, который выглядит так: Session().query(MyMappedClass).update({MyMappedClass.time:func.now()}) Я получил: InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter. Но если я это сделаю: Session().query(MyMappedClass).update({MyMappedClass.time:'now()'}) …оно работает. Кто-нибудь знает, почему?

Избегание кода обработки сеанса шаблона в функциях sqlalchemy

У меня есть приложение python, которое имеет множество небольших функций доступа к базе данных, используя sqlalchemy. Я стараюсь избегать большого количества кода обработки сессий шаблонов вокруг этих функций. У меня есть несколько функций, которые выглядят примерно так: def get_ticket_history(Session, ticket_id): s = Session() try: rows = s.query(TicketHistory)\ .filter(TicketHistory.ticket_fk==ticket_id)\ .order_by(TicketHistory.id.desc()).all() s.commit() return rows except: s.rollback() raise […]

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