SQLAlchemy: явная установка порядка объекта в session.merge()Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 SQLAlchemy: явная установка порядка объекта в session.merge()

Сообщение Anonymous »

Я использую SQLAlchemy (с базой данных Postgresql).
Я определил модель базы данных со следующей структурой:
Семейство таблиц code> с полями id и адрес.
Таблица Persons с id, name, Family_id и родительский_id

Код: Выделить всё

family_id
— это внешний ключ для таблицы Family, а родительский_id — это внешний ключ, ссылающийся на себя для таблицы Persons. Это используется для определения лиц с детьми, которые также могут иметь детей. Это дает мне возможность определять иерархические структуры.
Я хочу иметь операцию (для использования в REST-API), с помощью которой можно изменить семейство. Модификация может заключаться в добавлении новых членов в семейство и изменении их иерархической структуры.
При сохранении модификации я использую функцию SQLAlchemy session.merge(data).< /p>
Но это дает мне эффект, когда я изменяю семью, добавляя нового человека и определяя этого человека как родителя для одного или нескольких существующих людей (т. е. делая нового человека «родителем» существующие люди), то я получаю сообщение об ошибке, этот родительский_id не существует в таблице «Лица».
Я предполагаю, что это происходит потому, что слияние требует обновления существующих записей (дочерних элементов) перед вставкой нового человека (родителя).
Я могу реализовать обходной путь, вручную разделив людей на родителей и детей перед операцией слияния. Затем сначала объедините всех родителей, а затем всех детей. Но мне нравится иметь работающее решение и уровень ORM (т. е. где определена таблица Persons).
Вопрос
Можно ли явно установить порядок объектов при использовании session.merge() Чтобы сначала вставлять новые объекты, а затем обновлять существующие? Либо при определении модели, либо при вызове функции слияния.

Подробнее здесь: https://stackoverflow.com/questions/793 ... sion-merge
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SQLAlchemy: явная установка порядка объекта в session.merge()
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • SQLAlchemy: явная установка порядка объекта в session.merge()
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • SQLAlchemy: session.close() или session.commit()
    Anonymous » » в форуме Python
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • SQLAlchemy: session.close() или session.commit()
    Anonymous » » в форуме Python
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • SQLAlchemy: session.close() или session.commit()
    Anonymous » » в форуме Python
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»