你如何使rake db:schema:dump具有schema.rb中字段的charset和collat​​ion?

Yon*_*ciu 6 database ruby-on-rails ruby-on-rails-4

我们的一个领域需要区分大小写.我们可以编写一个迁移来更改正常工作的排序规则,但这种更改不会反映在schema.rb中.例如,当运行测试时,它将产生问题,克隆的测试数据库将不具有我们想要的该字段的排序规则.

我们使用mysql.

我已经找到了一种方法来实现这一点而没有结果.

我设法在github上找到这个,但不知道这是如何完成的https://github.com/cantino/huginn/blob/db792cdd82eb782e98d934995964809d9e8cb77d/db/schema.rb

mar*_*ets 4

我认为没有“官方”方法(由 Rails 或 ActiveRecord gems 提供)来完成这种转储。根据 git 历史记录,在Huginn存储库本身上,您可以找到实现此转储所需的代码。看看这个提交:https://github.com/cantino/huginn/commit/db792cdd82eb782e98d934995964809d9e8cb77d

目前最相关的代码位于: https: //github.com/cantino/huginn/blob/master/lib/ar_mysql_column_charset/main.rb

因此,如果您需要此功能,您可能需要将此扩展复制/粘贴到您的项目中。

更新

我对 repo(git 历史和问题)进行了更深入的审查Huginn,正如您可以在这篇评论中读到的那样,这个功能被提取到一个 gem 中: https: //github.com/kamipo/activerecord-mysql-awesome