SQLAlchemy: каскадное удаление и несортируемые первичные ключиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 SQLAlchemy: каскадное удаление и несортируемые первичные ключи

Сообщение Anonymous »

Моя модель данных настроена следующим образом:

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

class Source(Base):
id = sa.Column(sa.Text, primary_key=True)
hpx = sa.Column(ha.Point, index=True, nullable=False)

class Field(Base):

id = Column(Integer, primary_key=True, autoincrement=True)
tiles = relationship(lambda: FieldTile, order_by='FieldTile.id', cascade="all, delete, delete-orphan")

class FieldTile(Base):

id = Column(ForeignKey(Field.id, ondelete='CASCADE'), primary_key=True)
hpx = Column(Tile, primary_key=True, index=True)
Каждая строка в исходной таблице представляет точку в пространстве. Каждая строка в таблице Field представляет собой область в пространстве, а каждая строка в таблице FieldTile представляет плитку HEALPix с несколькими разрешениями, содержащуюся в соответствующем поле. Между Field и FieldTile существует сопоставление «один ко многим».
Я хотел бы иметь возможность удалять поля и связанные с ними FieldTiles из базы данных с помощью каскадного удаления:

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

previous_fields = db.query(Field).first()
db.delete(previous_fields)
db.commit()
Однако, когда я это делаю, я получаю сообщение об ошибке, что мои первичные ключи не поддаются сортировке (поскольку плитки HEALPix имеют тип диапазона):

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

sqlalchemy.exc.InvalidRequestError: Could not sort objects by primary key; primary key values must be sortable in Python (was: '

Подробнее здесь: [url]https://stackoverflow.com/questions/78695838/sqlalchemy-cascading-deletes-and-non-sortable-primary-keys[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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