2017-05-09 50 views
0

我目前正在编辑我的ravenDB实例中的现有文档。 我面临的主要问题是,我没有得到任何错误,但没有更改被保存。 我使用下面的代码:ravenDB + python不保存

#in init method 

     self.store = document_store.documentstore(url=self.dbURL, database=self.dbInUse) 
     self.store.initialize() 

    def someMethodToSaveData(self, id, newTextField="") 

     with self.store.open_session() as session: 
      doc = session.load(id) 
      doc.newTextField=newTextField 
      session.store(doc,id) 
      session.save_changes() 

感谢

编辑:添加session.save_changes()在此代码。测试,但我在另一个项目中有这样的线路,而且我面临同样的问题。

+1

你不” t需要在会话中为会话中加载的对象调用“store”。这可能会导致问题 –

回答

2

我想你将不得不调用该方法session.save_changes()从而使数据库事务完成:

#in init method 

     self.store = document_store.documentstore(url=self.dbURL, database=self.dbInUse) 
     self.store.initialize() 

    def someMethodToSaveData(self, id, newTextField="") 

     with self.store.open_session() as session: 
      doc = session.load(id) 
      doc.newTextField=newTextField 
      session.store(doc,id) 
      session.save_changes() # this call is important 

我发现在官方 RavenDB documentation这样的信息:

+0

我编辑了我的代码并将重新测试。但是,我对另一段包含save_changes()调用的代码有同样的问题。 – Neil

+0

问题的另一个来源可能是如果您用新会话覆盖现有的(而不是数据库保存的)会话并因此数据库事务从未完成。 – matyas

+1

Hi Neil在添加save_changes()代码后开始工作? –