Сохранить класс с методом в базу данных SQL Alchemy - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь сохранить класс в базе данных Postgres с помощью алхимии SQL, но мой метод не работает.

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

class PersistentClass(Base):
    __tablename__ = 'persistent_class'

    id = Column(String(50), primary_key=True, index=True,
                  nullable=False, autoincrement=False)
    class_binary = Column(Binary, nullable=False)

    def __init__(self, id, class_binary):
        self.id = id
        self.class_binary = class_binary

Я хотел бы сохранить это, используя метод класса:

class model:

    def persist(self):
        file = open(f"{self.id}.pkl", 'wb')
        model = PersistentClass(id_model=self.id,
                            model_binary=pickle.dump(self, file, protocol=pickle.HIGHEST_PROTOCOL))

        session.add(model)
        session.commit()

Однако это сохранило только идентификатор в соответствующем каталоге пакета вместо сохранения в базе данных.Пожалуйста, кто-нибудь может посоветовать, как обеспечить правильное сохранение в базу данных.Спасибо.

...