這次因為有些地方中文字儲存後會變成一堆問號 ???????????
所以發現 rake db:migrate 時會需要注意 collation 的問題。
確認的話,如果有裝 phpmyadmin ,事情很簡單,反正有介面可用找一找就可以知道結果。
如果沒裝得下指令的話,指令如下:
查看db
先 use db_name;
然後下 status 就可以看到 db 的 collation
查看table
一般查看 table 指令是下 describe table_name; 但是這不會出現 collation
所以要改下 show full fields from table_name;
參考網頁:MySQL 於 命令列 查看 Table 權限、註解等欄位資訊
治標的方法是 migrate 檔案內,直接指定 table 的 collation 校對格式,寫法如下:
create_table (:table_name, :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8')
如果 rake 指令已經下了,可以選擇回溯到某個日期的 migrate,指令為:
rake db:migrate VERSION=20100315074536
VERSION= 之後是 migrate 檔名開頭的 timestamp
如果不想回溯要直接改 collation ,指令是:
更改 db 的 collation
alter database db_name collate utf8_unicode_ci;
更改 table 的 collation
alter TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
留言列表