And*_*rew 10 mysql ruby-on-rails rails-migrations
运行导轨5.0.2
源代码管理中schema.rb中的表似乎主要具有以下格式:create_table "app_files", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci" do |t|
.注意COLLATE=utf8_unicode_ci"最后.
当我运行迁移时,生成schemaa.rb的大部分都是相同的,但是COLLATE=utf8_unicode_ci"从这些行中删除,所以它现在看起来像create_table "app_files", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
基于其他SO帖子,我尝试了两件事来解决这个问题
1)在我的/etc/mysql/my.cnf中我添加了
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)
2)在我的database.ymlive中添加collation: utf8_general_ci到所有相关环境中
然后我重新启动了mysql,删除,创建并迁移了我的数据库,但整理线仍然消失了.
有关我需要更改哪些配置以使该位自动生成的任何想法?
我遇到了这个问题,并通过在配置文件中添加encoding和collation设置来解决它database.yml。
我想知道你的是否被忽略,因为它们是 MySQL 默认值。您应该尝试使用utf8mb4和utf8mb4_unicode_ci,其额外好处是它们支持 4 字节字符,例如某些表情符号字符。
这是default我的文件的部分database.yml供参考:
default: &default
adapter: mysql2
encoding: utf8mb4
collation: utf8mb4_unicode_ci
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: root
password:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |