PostgreSQL
CircleCI

CircleCIでno-localeなPostgreSQLのDBを作成する

More than 3 years have passed since last update.


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