Posted by
今天試著將兩個手頭上已經沒在密集維護但偶有流量的網站移植到Heroku上來降低維護的成本,過程中相當輕鬆地將專案無痛轉移到Heroku之外,連資料都一起順利轉移過去了,以下是轉移步驟的簡介。
步驟其實很簡單,官方文件上應該也能找到更詳盡的教學,另外要注意的是,如果您的專案擁有自己的網址,希望能一併指到Heroku,還需要注意下列事項:
當然,上述步驟可以不透過指令,直接在Heroku的管理介面完成。
我自己在移植的過程中遇到兩個問題,第一個是資料丟上Heroku之後都變成亂碼,但我的MySQL編碼就是UTF8了,實在沒道理,因此就嘗試加上$KCODE的設定,沒想到馬上管用。
第二個問題是資料如何丟到Heroku,步驟也很簡單:
其中要注意的是,Heroku設計的原意是讓你可以將開發過程中已有的測試資料(development環境)丟上Heroku一併測試,因此我目前沒有找到如何讀取production環境的參數,我自己的作法是在config/database.yml中將development的設定改為production的設定,讓程式去讀取production。
或是你也可以使用指令的方式指定任意的資料庫:heroku db:push mysql://YOUR_USER_NAME:YOUR_PASSWORD@localhost/DB_NAME
P.S. 當然,如果嫌Heroku不好用或是其他原因想要搬家,只要下heroku db:pull,就會把雲端上的資料撈回來放在development環境,我自己是用SQLite,資料就會倒進SQLite了,是不是很方便呢?:p