【问题标题】:How to set collation in rails migration如何在 Rails 迁移中设置排序规则
【发布时间】:2018-11-03 14:41:31
【问题描述】:

我正在尝试将我的数据库排序规则设置为 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>'

有谁知道我该如何解决这个问题?

在此先感谢

【问题讨论】:

  • 您确定utf8_general_ci 是有效的postresql 排序规则吗?我认为这是一个mysql排序规则,而不是postresql。检查 postresql 文档并首先查找有效的排序规则。
  • 谢谢,我是个白痴。随意把它作​​为答案,所以我可以给你打勾:)

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


【解决方案1】:

utf8_general_ci 是 MySQL 排序规则,而不是 PostgreSQL。检查 Postresql 文档以获取有效的排序规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2011-09-26
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多