我使用ZMySQLDA連接器在數據庫用戶名密碼格式中使用ZMySQLDA連接器連接到來自Plone(Zope)的Mysql中的數據庫。
但我需要從外部文件傳遞連接字符串,以便我可以從外部文件更改它,而無需從zope管理界面更改連接對象。
可能嗎?
任何幫助或指針,將不勝感激。Plone:將連接字符串從外部文件傳遞到zmysqlda
回答
不容易。
你不說你需要究竟是如何獲得存儲在文件系統中的連接字符串:如果唯一的限制是它需要是上的文件系統,那麼這就是z3c.saconfig是什麼。它得到的配置從ZCML,如:
<configure xmlns="http://namespaces.zope.org/db">
<include package="z3c.saconfig" file="meta.zcml"/>
<engine name="otn" url="postgresql://[email protected]${buildout:dbhost}/otnunit" />
<session name="pas.plugins.sqlalchemy" engine="otn" />
</configure>
但z3c.saconfig是SQLAlchemy的,和你需要從ZMySQLDA切換到SQLAlchemyDA,即使這樣也不會是自動的。如果你準備好轉換,我可以幫你解決問題。
據我所見,ZMySQLDA是一個過時的適配器(實際上,我沒有看到很多人使用Zope DA,但至少SQLAlchemyDA與SQLAlchemy一起工作,維護得很好)。
如果您使用z3c.saconfig,那麼您可以使用collective.saconnect維護連接字符串(不再位於文件中,但位於Plone控制面板而不是ZMI中),然後您可以擁有適配器在連接字符串更改時重建連接。僅僅使用z3c.saconfig不會讓你這樣做。
我看不到一個簡單的方法來更改文件系統對象更新連接字符串。至少在修改文件以實現更改後,您需要遍歷某個視圖。
你讓我對!我只需要連接字符串在外部文件中是唯一的限制。但我只想堅持使用ZMySQLDA。有沒有ZMySQLDA的配置?或者我們可以爲它創建任何配置文件?請幫助我繼續前進謝謝。 – 2012-02-17 06:07:14
對不起,但這不可能發生。看到我上面編輯的評論。 – Auspex 2012-02-17 16:37:02
- 1. 傳遞連接字符串
- 2. 將連接字符串傳遞給dll?
- 3. 將連接字符串從PHP傳遞到perl腳本
- 4. 如何將連接字符串傳遞給SSIS文件?
- 5. VB.Net從外部文件中讀取2個連接字符串
- 6. gwt/jsni-從外部JS傳遞字符串到Java
- 7. 將字符串從FragmentActivity傳遞到ListFragment
- 8. 將字符串從PHP傳遞到Flash
- 9. 將字符串從PHP傳遞到Flash
- 10. 將值傳遞給SSIS連接字符串從c#
- 11. 將擴展參數傳遞到Sql 2008連接字符串
- 12. 從C#傳遞連接字符串到SSIS包
- 13. 將字符串傳遞給make文件
- 14. 從Web部件傳遞字符串到用戶控件
- 15. 將變量傳遞到符合W3C的外部js文件
- 16. 將值從外部.js文件傳遞給asp隱藏字段
- 17. 連接字符串例外
- 18. 如何將動態連接字符串傳遞給Crystal Reports .xsd文件?
- 19. php將字符串傳遞給外部diff命令
- 20. 從外部文件轉換字符串到Python字典
- 21. 將外文字符傳遞到數據庫/從數據庫傳遞
- 22. 將文本從UITextView傳遞到不同ViewController中的字符串
- 23. PowerShell DTexec/ISServer將連接字符串作爲包變量傳遞
- 24. 將連接字符串傳遞給ViewModel構造函數
- 25. 將連接的JavaScript字符串傳遞給JQuery變量?
- 26. 將連接字符串傳遞給代碼優先DbContext
- 27. 如何將連接字符串傳遞給類庫?
- 28. 值傳遞到外部JS文件
- 29. 將查詢字符串從index.html傳遞到Angular2組件
- 30. 在Delphi中將文件路徑從TOpenDialog傳遞爲字符串
這需要多久改變一次以及如何觸發改變?當Plone開始時?隨着每一個連接? – SteveM 2012-02-16 15:46:11
每當zmysqlda嘗試連接到數據庫時,它應該從外部文件中獲取連接字符串。 – 2012-02-17 06:04:51
這會有點麻煩,因爲這些數據庫適配器維護池連接,你將不得不確保你的解決方案是線程安全的。這不是一個答案,但如果我試圖這樣做,我會寫一個自定義視圖作爲數據庫連接的代理,然後開始研究DA界面以找出如何安全關閉和打開連接。更新連接字符串將是簡單的部分。 我想你可能會發現,當你完成所有這些工作之後,你可以轉向使用SQLAlchemy並且更加快樂。 – SteveM 2012-02-17 16:03:40