2017-04-09 47 views
0

我開發了一個在web派系服務器上使用Django和python3的chatbot web應用程序。基本上聊天機器人作爲客戶服務器與商店的用戶進行交互。它使用REST API來POST用戶輸入和GET以顯示chatbot輸出和一個python文件來處理輸入並找到輸出。從Sqlite3到Django Chatbot網站的Mysql

聊天是如何工作的:

1 chatboy.js:它的第一篇文章,用戶輸入的API中然後運行Python文件chabot.py。

2. chabot.py:一個連接到Django後端db.sqlite3和conversation.sqlite3的python文件。因此,它從db.sqlite3中選擇用戶輸入,然後在conversation.sqlite3中選擇匹配的輸出。最後,該文件將更新db.sqlite3中的chatbot輸出。

3. chatboy.js:將獲取最後一個chatbot輸出並顯示它。

在開發階段,當我在本地服務器上測試應用程序時,一切正常,但問題出現了,我們在互聯網上部署了Django項目。天色和停止申請表工作的主要ERORR是:

The database is locked 

我做了很多研究,發現了:

  1. sqlite3的是不能用於生產,只單獨小或站立應用。

  2. sqlite3有一個多線程問題。

  3. 不適合實時聊天應用。

一些建議,說無論是

  1. 切換所有的sqlite3到MySQL(但如何?以及如何我可以改變SQL查詢的Python文件,以適應MySQL的)
  2. 使用快速鍵保值像Reddis(意思使其後端數據庫形成我的項目或伸出的conversation.sqlite3?)

請幫助我,因爲它是非常令人沮喪,我有這個錯誤很長一段時間,我找不到解決問題的辦法。

謝謝你,

PS:我使用的Django 10,python3,sqlite3的,網絡派服務器

+0

如果您使用的是Django,則不需要更改任何查詢; ORM的一大優點就是數據庫不可知。 –

+0

@DanielRoseman感謝您的回覆,那麼最好是將數據庫表格sqlite更改爲mysql? – user7649420

回答

0

你只需要更新您的設置文件,以更改數據庫設置從sqlite3的到MySQL或PostgreSQL 。但在此之前,您需要在Webfaction控制面板中創建數據庫(更多信息,請參閱here)。