Rails 扩展 ActiveRecord::Migration,添加自定义 column 或者修改默认 column 行为

siriuszhuang · 2014年02月22日 · 最后由 siriuszhuang 回复于 2014年02月25日 · 2136 次阅读

最近需要自定义一些特殊字段,不想修改 migration 文件。想通过扩展ActiveRecord::Migration的方式实现,添加自定义 column 或者修改默认 column 的创建行为。

不知道最好的办法是什么。

P.S. 之前好像在一个地方看到过关于扩展ActiveRecord::Migration的文章。找了半天没有找到。

在 Migration 里面执行 SQL 不能到达这个目的么?

#1 楼 @huacnlee 可以的。但是因为是想要修改主键策略,所以想用一个统一的方式处理的更优雅一些。

#1 楼 @huacnlee 我找到了一些资料,可以在environment.rb中重写掉ActiveRecord::ConnectionAdapters::SchemaStatements中的native_database_types方法或者NATIVE_DATABASE_TYPES静态变量(传送门 gist),以支持更多自定义数据类型以及重写掉默认的数据类型。

但我运行rake任务的时候,貌似没有生效。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号