基本上,很多人用 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,但租的主機有時候是不能亂改的…..哈,無解