运行此迁移后,我的 geo_latitude 和 geo_longitude 列的类型为“float”(无精度和小数位数)。我可以直接运行sql查询并将类型更改为float(10, 6),那么为什么迁移会忽略我的精度和比例参数?
def change
add_column :item_exifs, :geo_latitude, :float, precision: 10, scale: 6, null: false, default: 0
add_column :item_exifs, :geo_longitude, :float, precision: 10, scale: 6, null: false, default: 0
end
最佳答案
尝试将类型更改为十进制,
def change
add_column :item_exifs, :geo_latitude, :decimal, precision: 10, scale: 6, null: false, default: 0
add_column :item_exifs, :geo_longitude, :decimal, precision: 10, scale: 6, null: false, default: 0
end
根据所使用的数据库,某些事件记录版本有一些奇怪的行为
Float vs Decimal in ActiveRecord
查看@Rokibul Hasan 和@ryan0 的回答
关于mysql - 为什么我无法设置 Rails 迁移中 float 的精度和比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45476720/