如何在Rails迁移中设置排序规则

时间:2018-11-03 14:41:32

标签: ruby-on-rails postgresql ruby-on-rails-5

我正在尝试将数据库排序规则设置为utf8_general_ci

这是我的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"] %>

运行rails db:setup会得到:

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>'

有人知道我该怎么解决吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

utf8_general_ci是MySQL归类,而不是PostgreSQL。检查Postresql文档是否有有效的排序规则。