【问题标题】:Why is my ActiveRecord updated_at timstamp column defaulting to negative Infinity?为什么我的 ActiveRecord updated_at 时间戳列默认为负无穷大?
【发布时间】:2017-03-06 16:32:26
【问题描述】:

我最近将我的数据库从 Postgres 迁移到 MySQL,以及从 Rails 2 升级到 Rails 5。

文档说created_onupdated_on 列的默认值应该是创建时的当前时间。出于某种原因,我的updated_on 列现在默认为-Infinity,这让我的一些代码变得异常。这可能是什么原因造成的?

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord timestamp database-migration


    【解决方案1】:

    原来问题是由我用来将 MySQL 数据库迁移到 Postgres 的迁移工具引起的,称为 NMIG。 NMIG 不仅迁移数据,还迁移架构,即使您已经有一个设置,也无法阻止它覆盖架构。好吧,无论出于何种原因,它用于updated_on 列的映射(也可能是updated_at 列?)将默认值定义为-Infinity

    为了解决这个问题,我通过使用新数据库名称更新我的 database.yml 创建了一个新的 PG 数据库,运行 db:createdb:schema:load,然后使用 pg_dump 转储 postgres 数据,然后 @ 987654328@ 仅恢复数据,而不覆盖架构。多田! :)

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 2021-11-02
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多