将带有方法的类保存到SQL Alchemy数据库

时间:2018-12-28 13:59:37

标签: python sqlalchemy pickle

我正在尝试使用SQL炼金术将类保存到Postgres数据库,但是我的方法似乎不起作用。

数据库架构如下:

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()

但是,这只会将ID保存在相对的软件包目录中,而不是保存到数据库中。请任何人提供有关如何确保将其正确保存到数据库的建议。谢谢。

0 个答案:

没有答案