2017-05-09 52 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()代碼後開始工作? –