浏览 1908 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-28
最后修改:2011-08-28
搜索好久一直没找到好的办法,有人说要装插件,但我看了一下插件很久没更新了。后来看了下mysql_adapter源码找到答案,源码片段如下: # activerecord-3.0.9/lib/active_record/connection_adapters/mysql_adapter.rb # Maps logical Rails types to MySQL-specific data types. def type_to_sql(type, limit = nil, precision = nil, scale = nil) return super unless type.to_s == 'integer' case limit when 1; 'tinyint' when 2; 'smallint' when 3; 'mediumint' when nil, 4, 11; 'int(11)' # compatibility with MySQL default when 5..8; 'bigint' else raise(ActiveRecordError, "No integer type has byte size #{limit}") end end 所以我们可以添加:limit => 5/6/7/8来得到一个bigint列。 t.integer :qq, :limit => 8 如果想设置id为bigint,还要在create_table时传递:id => false,然后手动指定id列。 class CreateDemo < ActiveRecord::Migration def self.up create_table :demo, :id => false do |t| t.integer :id, :limit => 8 end end end 参考资料: http://rubyer.me/blog/468 欢迎光临我的小博 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |