在Rails架构/活动记录中使用“BIGINT UNSIGNED”

时间:2013-11-25 09:35:45

标签: mysql ruby-on-rails activerecord rails-activerecord

我有一个Rails应用程序,需要能够在mysql数据库中保存文件的指纹。这些指纹是填充BIGINT整个范围的数字,甚至需要额外的UNSIGNED空间。我不能使用“VARCHAR”,因为稍后需要在数据库端执行数学运算。

所以我创建了我的表格列:

t.column :fingerprint, 'BIGINT UNSIGNED'

像魅力一样工作。

但是在跑步时

rake db:reset

我总是得到一个schema.rb,其中包括:

t.integer  "fingerprint", :limit => 8

当我再次运行“rake db:reset”时,手动编辑为“BIGINT UNSIGNED”可以正常工作,但会立即替换。

有没有办法在重置之间保持这种持续性?

1 个答案:

答案 0 :(得分:-1)

解决方案非常简单。如果将应用程序的模式格式设置为:sql,一切都应按预期工作。

修改您的config/application.rb并进行以下更改/添加:

config.active_record.schema_format = :sql

您可以在导轨指南中找到更详细的说明:http://guides.rubyonrails.org/migrations.html#types-of-schema-dumps