我有一个Rails应用程序,它需要能够在mysql数据库中保存文件的指纹。这些指纹是填充BIGINT完整范围的数字,甚至需要额外的无符号空间。我不能使用“VARCHAR”,因为以后需要在数据库端执行数学操作。
所以我创建了我的表列,如下所示:
t.column :fingerprint, 'BIGINT UNSIGNED'
很有魅力。
但是在跑步的时候
rake db:reset
我总是得到schema.rb,它包括:
t.integer "fingerprint", :limit => 8
手动编辑到“BIGINT UNSIGNED”可以工作,但当我再次运行“rake db:reset”时,它会立即被替换。
有没有办法在重置之间保持这种持续性?
最佳答案
解决办法很简单。如果将应用程序的架构格式设置为:sql,则所有内容都应按预期工作。
编辑config/application.rb
并进行以下更改/添加:config.active_record.schema_format = :sql
您可以在rails指南中找到更详细的解释:http://guides.rubyonrails.org/migrations.html#types-of-schema-dumps
关于mysql - 在Rails模式/事件记录中使用“BIGINT UNSIGNED”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20188681/