惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
罗磊的独立博客
腾讯CDC
云风的 BLOG
云风的 BLOG
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
U
Unit 42
I
InfoQ
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
美团技术团队
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
GbyAI
GbyAI
S
SegmentFault 最新的问题

Nic Lin's Blog

謝明真 - 高效領導力的課後筆記 NFT 開發實戰!基礎智能合約入門 (3) NFT 開發實戰!基礎智能合約入門 (2) NFT 開發實戰!基礎智能合約入門 (1) 如何自我檢測 log4j CVE 漏洞 Rails 如何在資料寫入時記錄來源 IP 位置 如何經營工程師 Youtube 頻道 - Part 8 營收篇 如何經營工程師 Youtube 頻道 - Part 7 酸民文化篇 如何經營工程師 Youtube 頻道 - Part 5 設備器材篇 如何經營工程師 Youtube 頻道 - Part 4 後製剪輯篇 如何經營工程師 Youtube 頻道 - Part 3 文案企劃篇 如何經營工程師 Youtube 頻道 - Part 2 設備器材篇 如何經營工程師 Youtube 頻道 - Part 1 制訂頻道方向篇 如何經營工程師 Youtube 頻道 - Part 0 Rails 中避免 race condition 的最佳實踐(二) Rails 中避免 race condition 的最佳實踐(一) 10 分鐘整合 google sheet 做自動化開發功能週報 經營 Side Project 300 天所帶來的收穫及挑戰 我的 Youtube 影片製作流程 API 設計時必須注意的 HTTP header 底線問題 如何提升你的程式可讀性之實務技巧(三) 如何提升你的程式可讀性之實務技巧(二) 如何提升你的程式可讀性之實務技巧(一) Ruby 中使用 freeze 優化效能的時機 避免 React 中的 useEffect 無限 render 在 Rails 內輕量使用 Vue Component 的最佳實踐 如何在區域網路用 Docker 架設有 SSL 的 Gitlab 從被問到問人,那些我常問的面試問題 [Rails] 如何漂亮寫出可維護的 query (Maintainable Rails Query) 在已知長度情況下優化 slice 的性能
[Rails] 基礎安全觀念 database.yml 與 .gitignore
Nic Lin · 2017-04-19 · via Nic Lin's Blog

啟動 rails server 遇到了這個錯誤嗎?

ActiveRecord::ConnectionNotEstablished

No connection pool with id primary found

這個問題通常是,Rails 的 ActiveRecord 在初始化的時候讀不到你的數據庫(database),可以先檢查 config/database.yml這隻檔案是否存在?

螢幕快照 2017-04-19 下午5.38.59.png

那麼最近很多同學遇到關於 cp config/database.yml.example config/database.yml的問題

覺得這個是屬於安全性的觀念,來寫一下好了

先了解 .gitignore

Git 在項目上傳的時候,通常我們會對整個項目做 tracking(追蹤),所以當追蹤之後只要有任一檔案新增或是變動,Git 都會紀錄,由於我們很常使用 git add . ,所以都會把這次「所有」變動的項目加入 commit。

那麼,如果有很機密的檔案不能上傳,怎麼辦?例如部屬到機器上的資訊,包括 IP, 數據庫帳號密碼,這些東西如果上傳到 Github 的公開專案,豈不是全世界都看光光了,可以任意進出你的機器或數據庫。

因為我們的 Rails 專案底下掌管三種環境(Production, Development, Test)的數據庫資訊都會放在 config/database.yml

所以將我們要過濾掉,不得上傳的檔案路徑,寫進 .gitignore 裡面,他就會過濾這隻檔案,不給予追蹤了

...
...
config/database.yml
...

置放模版

那麼這時候如果你拉下來的專案,沒有了 config/database.yml ,我們又不會特地去背這個,卻又是 Rails Project 運行的必要檔案,怎麼辦?

所以我們會寫一隻「模版」放在專案裡面,但是又要能夠清楚表達他是什麼樣的檔案,又要能被追蹤(因為我們已經先屏蔽了 config/database.yml),所以我們就會做一隻模版放進去

  1. config/database.yml.example
  2. config/database.yml.template

這兩種都可以,或是你有更好的寫法。

那麼經歷以上兩個說明,就可以完整解釋為什麼要在作業 clone 下來運行前輸入這個指令了

cp config/database.yml.example config/database.yml

cp = copy = 複製的意思

cp a.file b.file 解釋:複製 a.file 檔案,並把複製出來的檔案命名為 b.file,且在同一個目錄