在rails迁移中定义字符



所有使用Rails迁移创建的表和字段都具有latin1_swedish_ci排序。因为我的项目使用俄语,所以这个排序是不合适的。

可以在utf8_general_ci中使用迁移吗?

注:我的形式:

development:
  adapter: mysql2
  encoding: utf8
  collation: utf8_general_ci
  reconnect: false
  database: my_development
  pool: 5
  username: username
  password: 'heavy'
  host: localhost

下面是一个在迁移中指定排序规则的示例:

create_table :users, :options => 'COLLATE=utf8_general_ci' do |t|
  t.string :email
  t.timestamps
end

Rails不设置连接上的排序(仅在create_database调用的数据库上)。最好的办法是自己在系统的MySQL配置文件中设置它,例如:/etc/my.cnf

我实际上建议你告诉MySQL完全忽略客户端握手,最好是服务器告诉客户端使用哪个字符集和排序法。MySQL配置文件的相关部分如下所示:

[server]
character_set_server=utf8
collation_server=utf8_unicode_ci
skip_character_set_client_handshake

如果选择此路径,请记住在部署到的服务器上执行相同的操作。如果你不知道MySQL的配置文件在哪里,那么从命令提示符中运行:my_print_defaults | grep -A1 "Default options"这将给你MySQL将查找的配置文件(按顺序)。

相关内容

  • 没有找到相关文章

最新更新