我有一个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”可以正常工作,但会立即替换。
有没有办法在重置之间保持这种持续性?
答案 0 :(得分:-1)
解决方案非常简单。如果将应用程序的模式格式设置为:sql,一切都应按预期工作。
修改您的config/application.rb
并进行以下更改/添加:
config.active_record.schema_format = :sql
您可以在导轨指南中找到更详细的说明:http://guides.rubyonrails.org/migrations.html#types-of-schema-dumps