$ be bin/rails db
=# ALTER TABLE users ALTER COLUMN kana TYPE varchar COLLATE "ja_JP.utf8";
> 特定のカラムにだけ付与
=# \d staffs
> 付与したことを確認
macにbrewで入れたpostgresqlにja_JP.UTF-8
がなかったので作りました。
$ locale -a | grep ja
ja_JP
ja_JP.eucJP
ja_JP.SJIS
ja_JP.UTF-8
> 目的のlocaleを確認
$ be bin/rails db
=# SHOW LC_COLLATE;
lc_collate
-------------
ja_JP.UTF-8
(1 row)
> データベースのcollationにも入っているのに…
=# \l
> templateのCollateにja_JP.UTF-8が設定されているのに…
=# ALTER TABLE users ALTER COLUMN kana TYPE varchar COLLATE "ja_JP.utf8";
ERROR: collation "ja_JP.utf8" for encoding "UTF8" does not exist
=# SELECT * from pg_collation;
> ja_JP.UTF-8に対応するcollationがない…
=# CREATE COLLATION "ja_JP.utf8" (LOCALE = 'ja_JP.UTF-8');
> つくられた