O
utf8_bin
collation é usado para comparar strings em um modo sensível a maiúsculas e minúsculas, pelo valor binário de cada caractere. Pode depender de suas configurações locais de seu banco de dados qual conjunto de caracteres ou agrupamento é usado. Por exemplo, para um banco de dados MySQL, você pode verificar o modo de agrupamento do banco de dados MySQL com o seguinte comando MySQL mysql> SELECT COLLATION(VERSION());
+----------------------+
| COLLATION(VERSION()) |
+----------------------+
| utf8_general_ci |
+----------------------+
..ou usando este ..
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
No seu caso, um desses valores deve ser
utf8_bin
. Os valores gerais para o banco de dados podem ser definidos em seu arquivo de configuração, provavelmente my.cnf
para MySQL. Para criar uma tabela MySQL com um mecanismo, conjunto de caracteres ou agrupamento específico, você pode usar as opções de migração:create_table :users,
:options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci'
...
De acordo com a documentação, o conjunto de caracteres de tabela e agrupamento são extensões do MySQL, não existem essas coisas no SQL padrão.