Brad
Brad

Reputation: 8698

How to set collation in rails migration

Im trying to set my db collation to utf8_general_ci

Here is my database.yaml

default: &default
    adapter: postgresql
    encoding: utf8
    collation: utf8_general_ci
    host: <%= ENV["POSTGRES_HOST"] %>
    port: <%= ENV["POSTGRES_PORT"] %>
    username: <%= ENV["POSTGRES_USER"] %>
    pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
    <<: *default
    database: <%= ENV["POSTGRES_DB_NAME"] %>
    password: <%= ENV["POSTGRES_PASSWORD"] %>

When I run rails db:setup I get:

rails aborted!
ActiveRecord::StatementInvalid: PG::WrongObjectType: ERROR:  invalid locale name: "utf8_general_ci"
: CREATE DATABASE "my_db" ENCODING = 'utf8' LC_COLLATE = 'utf8_general_ci'
bin/rails:4:in `<main>'

Does anyone know how I can solve this?

Many thanks in advance

Upvotes: 1

Views: 1621

Answers (1)

arieljuod
arieljuod

Reputation: 15848

utf8_general_ci is a MySQL collation, not PostgreSQL. Check Postresql docs for valid collations.

Upvotes: 3

Related Questions