首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使rake :schema:dump具有schema.rb中字段的字符集和排序规则?

问如何使rake :schema:dump具有schema.rb中字段的字符集和排序规则?
EN

Stack Overflow用户
提问于 2015-11-25 15:15:43
回答 2查看 1K关注 0票数 6

我们的一个字段需要区分大小写。我们可以编写一个迁移来更改排序规则,这很好,但是这种更改没有反映在schema.rb中。例如,当运行测试时,它会产生问题,并且克隆的测试数据库将没有我们为该字段所需的排序规则。

我们使用mysql。

我一直在寻找一种方法来实现这件事,但没有结果。

我设法在github上找到了这个,但不确定这是如何实现的https://github.com/cantino/huginn/blob/db792cdd82eb782e98d934995964809d9e8cb77d/db/schema.rb

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-25 17:13:45

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

当前最相关的代码是:字符集/main.rb

因此,如果您需要这个特性,您可能需要将这个扩展复制/粘贴到项目中。

更新

我对Huginn回购(git历史和问题)做了更深入的回顾,正如您在这个评论中所读到的那样,这个功能被提取到一个gem:https://github.com/kamipo/activerecord-mysql-awesome中。

票数 4
EN

Stack Overflow用户

发布于 2016-04-08 09:23:45

正如@house9 9的注释中提到的,您可以使用structure.sql代替。将其添加到项目的application.rb中:

代码语言:javascript
复制
config.active_record.schema_format = :sql

然后运行bundle exec rake db:structure:dump生成实际的SQL结构。这保留了字符集和排序规则(理想情况下,应该在schema.rb中,但可惜)。

从本质上说,“结构”不如“模式”那么可移植,但对于所有团队成员和环境来说,使用相同的数据库和版本通常是件好事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33920084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档