基本上,很多人用 rank db:migrate, 看日本的範例是直接開mysql資料庫,那時候不懂,他的做法出乎意外,因為大部份的範例不是這樣,現在才知道為什麼。
rank db:create_migration NAME=xxx 建立後,再改xxx.rb檔,設完後,rank db:migrate就產生大問題了!
在開發環境,用sqlite3, 是的,可以用,但到正式mysql資料庫,能用,但編碼是litaxxxx ....不是UTF8;那在xxx.rb 文件內強制設定option
create_table :tops, options: 'DEFAULT CHARSET=utf8'
當然就不發生錯誤,但回到sqllite3就錯了!因為sqlite3沒支援這語法......那這樣怎麼處理? 寫程式,因為xxx.rb,是ruby語法。
但這樣有比較快嗎?
還是直接把 cretae table schema和insert sql直接另外做文件,進mysql和sqlite3執行sql比較快....
mysql 當然更快是直接把table名稱改掉,新增 新的table;
sqlite3 直接copy一個新的sqlite3,進去刪掉table更快...
也許是我不了解rank db,但目前的了解就是這樣子....
另外有試著把mysql的db,需設成utf8,但租的主機有時候是不能亂改的.....哈,無解