我正在運行一個nodejs應用程序以及一個PostgreSQL數據庫。目前,我藉助以下環境變量從nodejs連接到數據庫:POSTGRESQL_HOST
,POSTGRESQL_USER
,POSTGRESQL_PASSWORD
和POSTGRESQL_PORT
。 POSTGRESQL_USER
和POSTGRESQL_PASSWORD
被映射到正確的「祕密」。端口是靜態的,所以它永遠不會改變。我的問題是與主機。目前,我手動輸入了POSTGRESQL_HOST
中的PostgreSQL窗格的IP地址,但每次實例重新部署時都會更改。連接到數據庫的正確方法是什麼?在Openshift中連接數據庫的正確方法是什麼?
0
A
回答
3
在部署配置的環境變量中設置POSTGRESQL_HOST
時,請將其設置爲PostgreSQL數據庫服務的名稱,而不是IP。該服務的名稱作爲內部DNS服務器中的主機名添加,並映射到適當的IP。所以當服務名稱用作主機名時,事情會自動解決。
FWIW,我會親自避免使用自動添加的環境變量。無論如何,這些名稱的前綴是服務的名稱(大寫),因此您已經將其綁定到服務名稱的知識上。最好在部署配置中使用環境變量而不是硬連線到代碼中。自動添加的環境變量的另一個問題是,如果數據庫是在前端之後創建的,那麼它們最初不會被設置。所以最好避免它們。他們是在Docker中連接容器的遺產,他們從來就不是一種很好的做事方式。
0
如果您從吊艙的終端檢查您的環境,請撥打printenv
,您應該看到automatically added variables。因此,假設您的Postgres服務被稱爲POSTGRES
,則可以使用環境變量POSTGRES_SERVICE_HOST
來訪問您的數據庫。
相關問題
- 1. 在Dispose方法中關閉數據庫連接是否正確?
- 2. 在mojoportal中傳輸數據庫的正確方法是什麼?
- 3. InstallShield 2012:什麼是連接到Oracle數據庫的正確方法
- 4. 從eclipse插件連接數據庫的正確方法是什麼?
- 5. 在python中建立數據庫連接的正確方法
- 6. 確保EntityManager連接關閉的正確方法是什麼?
- 7. 什麼是在關係數據庫中存儲'元數據'的正確方法?
- 8. 什麼是備份/恢復mnesia數據庫的正確方法?
- 9. 更改數據庫名稱的正確方法是什麼?
- 10. 什麼是處理數據庫的正確方法?
- 11. 使用sqlsrv切換數據庫的正確方法是什麼?
- 12. 什麼是配置數據庫連接的好方法?
- 13. 在我的數據庫中存儲隨機數的正確方法是什麼?
- 14. 什麼是連接我的網站頁面的正確方法?
- 15. 什麼是從數據庫中分離數據列的正確方法
- 16. 在表格中保存數據的正確方法是什麼
- 17. 什麼是在DOM中存儲數據的正確方法
- 18. 什麼是連接IPropertyChanged事件通知的正確方法?
- 19. 使用連接池,什麼是正確的方法?
- 20. 關閉TCP連接的正確方法是什麼
- 21. 使TcpListener異步處理連接的正確方法是什麼?
- 22. 什麼是刪除多對多連接的正確方法?
- 23. 關閉和清理Socket連接的正確方法是什麼?
- 24. 在OpenShift中運行nginx docker容器的正確方法是什麼?
- 25. 在mysql數據庫中存儲友誼關聯的正確方法是什麼
- 26. 什麼是在數據庫中保存php代碼的正確方法
- 27. 在數據庫中做靈活列的正確方法是什麼?
- 28. 在數據庫中記錄成員生日的正確方法是什麼?
- 29. 將COM接口傳遞迴庫的正確方法是什麼?
- 30. 將Vue狀態數據綁定到數據庫的「正確」方法是什麼?
在這種情況下,我需要在我的nodejs應用程序代碼中擁有'POSTGRES_SERVICE_HOST',而不是原來的'POSTGRESQL_HOST'吧?你知道是否可以將一個環境變量的值設置爲另一個?例如,'POSTGRESQL_HOST' ='$ POSTGRES_SERVICE_HOST'? – pranavashok
如果你想繼續使用'POSTGRESQL_HOST',Graham的答案是正確的選擇。 –