【问题标题】:ActiveRecord Migration - datetime to timestampActiveRecord 迁移 - 日期时间到时间戳
【发布时间】:2012-12-19 13:08:48
【问题描述】:

我正在尝试将 MySQL 中的一些日期时间列迁移到时间戳类型。在 ActiveRecord 迁移中,我有:

change_column(:oe_tags, :created_on, :timestamp)

但是它生成的sql是

ALTER TABLE `oe_tags` CHANGE `created_on` `created_on` datetime DEFAULT NULL

这显然不是时间戳类型,而是日期时间(它已经是)。如何更改timestamp?根据文档 :timestamp 是一个有效的符号。

编辑: 也许我没有说清楚(道歉)。我想知道 Rails 中 ActiveRecord 迁移中正确的 change_column 规范。我已经知道我期望的正确 SQL。如何通过 ActiveRecord 迁移来实现它是个问题。

【问题讨论】:

  • 也许你会在这里找到一些答案stackoverflow.com/questions/9227784/…,和你的问题很相似
  • 感谢@AdrienK - 这正是我所需要的。不知道你是怎么找到的——我先搜索了一下,没看到。

标签: mysql ruby-on-rails activerecord


【解决方案1】:

试试 modify 关键字 ::

ALTER TABLE `oe_tags` MODIFY `created_on` datetime DEFAULT NULL

【讨论】:

  • 这不会创建时间戳 - 它会创建日期时间类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 2013-06-03
相关资源
最近更新 更多