【JA魔改秘笈】Heroku 實用指令彙整(緊急狀況必用的復原版本、多人協作)

關於這篇彙整文章

這個畫面,曾經傷透了多少人的心...

  • 辛辛苦苦搞定了本地端的新功能,但一推上 Heroku 就報錯了!找不到問題,但總不能放著掛掉的網站不管吧?腦袋糊、心態炸裂,卻又不能休息。硬著頭皮搶修,最後只弄出一堆髒兮兮、於事無補的代碼。
  • 創建 Heroku App 時,順手用了 $ heroku create,隨機給的域名意味不明啊!想換域名卻又怕麻煩、會出問題。
  • 隊友的代碼內容有問題,但我是負責推 Heroku 的人;怎麼樣讓隊友自己看 Heroku Logs,然後自己修、自己部署?
  • 「那個指令叫什麼來著...」,偷懶沒有紀錄,每次需要時,都得再回到交流論壇跟學霸的 Logdown 找指令。

過去這段時間,在 Heroku 正式端遇上不少坑,所幸後來知道了「Heroku 版本復原」這一招,日後不再因為 Heroku 部署而緊張兮兮,就算遇上報錯,也能從容應對。這篇文章,除了為大家提供「Heroku 版本復原」、「Heroku 多人協作」的方式,也蒐羅了一些實用指令,供大家收藏、使用。

希望這篇彙整文能幫助大家克服內心深處對 Heroku 部署的恐懼,以及節省四處查找的時間(生命誠可貴)!

--

  • 本文目錄:

    • Heroku 部署上線
    • 查看設定 & 歷程
    • Heroku 正式端資料
    • Heroku 版本復原(*如遇緊急狀況,實用!*)
    • Heroku 多人協作
  • GitHub 簡潔版
    供大家收藏,日後查詢使用,歡迎 Star、Fork。


Heroku 部署上線

註:上線前的 Gemfile 文件的必要修改,網路上、全棧營教材中都有很詳盡的幫助文檔,這篇教程便不再贅述。

  • 創建 Heroku App,並同時命名。
    $ heroku create <專案名稱>

  • 重新命名 Heroku App。
    $ heroku apps:rename <新的專案名稱>

  • 將主幹(master)進度部署至 Heroku。
    $ git push heroku master

  • 將分支(branch)進度部署至 Heroku。
    $ git push <分支名稱>:master

  • 執行所有 Migration。
    $ heroku run rake db:migrate


查看設定 & 歷程

  • 檢查專案的遠端路徑( GitHub、Heroku)。
    $ git remote -v

  • 查看歷程(Logs)。
    $ heroku logs


Heroku 正式端資料

  • 使用遠端 Rails Console,可用於:新增或修改資料,操作方式與本地的 Rails Console 相同,輸入 $ exit 可以跳出。
    $ heroku run rails console

  • 利用 seed.rb 檔案內容創建資料。
    $ heroku run rake db:seed

  • 清空資料庫
    $ heroku pg:reset DATABASE


Heroku 版本復原(*如遇緊急狀況,實用!*)

將版本推上 Heroku 後,遇到讓人絕望的 "We're sorry, but something went wrong." 報錯訊息,但一時之間又無法查明原因、排除問題;這種時候,你可以執行以下步驟,先將網站恢復成能正常運行的版本。

Step 1. 查看過去的部署版本

輸入後,終端機會列出所有的版本號(每一次推 Heroku 會是一版),找到要倒回的版號。

  • 查看部署歷程。

    $ heroku releases

    ----------
    從版本號歷程,你可以看到幾個部分:
    。 版本號:下圖的淺藍圓圈處。
    。 部署內容:下圖的黃色方框處,範例截圖中的 Deploy 23172a7323172a73 這一串英數,就是該版本的最新 commit 的編號。
    。 部署者
    。 日期 / 時間

Step 2. 將 Heroku App 復原至該版本

接著只要利用指令,倒回至該版本的內容即可。

  • 將 Heroku 復原至過去的版本內容。

    $ heroku rollback <版本號>

如果要取消這個改動,訊息也很貼心地告訴你 "To undo, run: heroku rollback <版本號>",照著執行即可。


Heroku 多人協作

多人協作時,要讓其他開發人員一起參與 Heroku 的部署,可以照著以下步驟:

Step 1. Heroku App 的擁有者(Owner)將該人員加至協作者(Collaborator)名單

  • [方法一] 終端機執行指令
    $ heroku access:add <電子郵件地址>

  • [方法二] 前往 Heroku,選擇 App 後進入 Access 設置。


Step 2. 協作者在本地設定 Heroku 遠端路徑。

協作者會收到一封 Email,通知已經被加入協作名單。這時候只要為本機的專案添加 Heroku 的遠端路徑,就可以參與部署了。

  • 新增專案的 Heroku 遠端路徑。
    $ heroku git:remote -a <專案名稱>


補充 — 協作相關指令

  • 瀏覽擁有權限的協作成員名單。
    $ heroku access

  • 移除協作成員。
    $ heroku access:remove <電子郵件地址>




有任何開發上的問題,都可以透過 Slack:xbearx1987、anndo-2 找到吉米或我,我們很樂意為你解答。

如果你覺得教程對你有幫助,希望你能至我們的作品 J & A SELECT投下寶貴的一票!你的投票,代表的是對好作品、好教程的支持與鼓勵,也會成為我們持續分享的動力。

Comments

comments powered by Disqus