Collate=CのPostgreSQLデータベースとは?
PostgreSQLで感覚的に正しい日本語ソートを行うにはinitdb時に--no-locale
オプションを付けて初期化を行う必要がある。CircleCIではデフォルトでUTF-8なので正しくテストを実行することができない可能性がある。
強制的にno-localeなDBを作り直す
circle.ymlに次のように指定することでno-localeなDBを強制的に再作成することができる。
machine:
ruby:
version: 2.2.1
pre:
- sudo locale-gen ja_JP.UTF-8
- sudo -E -u postgres PGDATA=/var/lib/postgresql/9.4/main /usr/lib/postgresql/9.4/bin/pg_ctl stop
- sudo -E -u postgres rm -r /var/lib/postgresql/9.4/main
- sudo -E -u postgres PGDATA=/var/lib/postgresql/9.4/main /usr/lib/postgresql/9.4/bin/initdb --encoding=UTF8 --no-locale --username=ubuntu
- sudo -E -u postgres PGDATA=/var/lib/postgresql/9.4/main /usr/lib/postgresql/9.4/bin/pg_ctl start
timezone:
Asia/Tokyo