提问人:Slth 提问时间:8/8/2023 最后编辑:Slth 更新时间:8/9/2023 访问量:92
如何在 Rails 7.0 中使用 Postgresql 的“real”(float4)类型,而不是“双精度”?
How to use Postgresql's "real" (float4) type in Rails 7.0, instead of the "double precision"?
问:
我有一个连接到Postgres数据库的Rails 7.0应用程序。
我有数百万行的表,每行存储 10 多列作为浮点类型。
在 Rails 中存储带有小数的数字的默认方式是 float 类型,它对应于 Postgres 中的 float8 类型(也称为双精度),这意味着作为此类型存储的每个值都是 8 字节的数据。
我可以通过告诉 Rails 来节省大量空间,告诉 Postgres,使用 float4(real)而不是 float8。
基本上将我数据库中最大表的大小减半。
唯一的问题是我真的不知道该怎么做,而且我似乎没有找到任何线索。
有没有人尝试过这样做?
此外,如果是这种情况,我会接受有关迁移本身的任何建议,因为我还需要将现有条目切换到 float4。
最好!
答:
2赞
Slth
8/8/2023
#1
通过搞砸迁移找到了答案。
就像在浮点类型中添加 4 一样简单,如下所示:
def change
add_column :my_table, :my_column, :float4
end
这会导致在检查psql时出现“real”列。
评论