【问题标题】:Heroku + rails, rake db migrate worked locally and failed on heroku...Heroku + rails,rake db migrate 在本地工作并在heroku上失败......
【发布时间】:2011-04-07 09:40:15
【问题描述】:

我正在像这样更改列上的比例......

change_column :options, :size, :decimal, :precision => 8, :scale => 8

它在本地工作,但是在运行它时 heroku 会抛出错误...

PGError: ERROR:  numeric field overflow
DETAIL:  A field with precision 8, scale 8 must round to an absolute value less than 1.
: ALTER TABLE "options" ALTER COLUMN "size" TYPE decimal(8,8)

那么如何在 heroku 上给出 8 的值比例和精度?

干杯。

【问题讨论】:

    标签: sql ruby-on-rails migration heroku rake


    【解决方案1】:

    Postgres(在 Heroku 上运行的)如果它们相同,则不应该同时需要精度和规模。

    精度是有效位数的总数

    Scale 是 DP 右边的位数。

    因此通过设置 8 和 8。这意味着它必须是 8 位,并且 DP 的右侧必须是 8 位。因此为什么会出现错误 - 你不能有任何大于 1 的值。 如果您想要 DP 的任一侧为 8 位,请使用精度为 16 并缩放为 8。如果您只想要 8 位总数字,请仅使用精度 = 8。

    更多信息here

    【讨论】:

    • 哦,我明白了,干杯。奇怪它是如何在本地运行的。 Heroku 必须更加严格。
    • @Smickie 这可能是因为您的开发环境运行 SQLite 或其他非 Postgresql 数据库?严格性可能是特定数据库的结果。
    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2021-04-16
    相关资源
    最近更新 更多