Python SQL炼金术关系

Python SQL炼金术关系,python,sqlalchemy,Python,Sqlalchemy,我在炼金术方面遇到了另一个问题。我有一个关系,假设从我的模型中级联删除一些数据,声明如下: parentProject = relationship(Project, backref=backref("OPERATIONS", cascade="all,delete")) 只要数据来自当前会话,这就可以正常工作。但是如果我启动一个会话,添加一些数据,然后关闭。启动另一个会话并尝试从上一个会话中删除数据,级联不起作用。数据库的初始值设定项如下所示: if isDBEmpty: LOGGE

我在炼金术方面遇到了另一个问题。我有一个关系,假设从我的模型中级联删除一些数据,声明如下:

parentProject = relationship(Project, backref=backref("OPERATIONS", cascade="all,delete"))
只要数据来自当前会话,这就可以正常工作。但是如果我启动一个会话,添加一些数据,然后关闭。启动另一个会话并尝试从上一个会话中删除数据,级联不起作用。数据库的初始值设定项如下所示:

if isDBEmpty:
    LOGGER.info("Initializing Database")
    session = dao.Session()
    model.Base.metadata.create_all(dao.Engine)
    session.commit()
    LOGGER.info("Database Default Tables created successfully!")
    dao.storeEntity(model.User(administrator_username, md5(administrator_password).hexdigest(), administrator_email, True, model.ROLE_ADMINISTRATOR))
    LOGGER.info("Database Default Generic Values were stored!")
else:
    LOGGER.info("Database already has some data, will not be re-created at this startup!")
我猜我错过了一些基本的东西。非常感谢您的帮助

问候,,
Bogdan

如果没有代码,很难看到会发生什么。你能展示一些简单的代码来说明这个问题吗?查看数据库模型的代码也会很有用。我想知道当您打开一个新会话时,是重新加载在旧会话中创建的对象,还是使用相同的引用(变量)。你应该重新加载;如果不这样做,这可能会导致出现问题