mysql - ActiveRecord 迁移 - 日期时间到时间戳

标签 mysql ruby-on-rails activerecord

我正在尝试将 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 迁移来实现它是个问题。

最佳答案

试试 modify 关键字::

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

关于mysql - ActiveRecord 迁移 - 日期时间到时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953132/

相关文章:

ruby-on-rails - 如何更改集成测试中的夹具值

ruby-on-rails - rails activerecord 'where' 搜索数组

mysql - 使用 Active Record 区分大小写的数据库搜索

ruby-on-rails - 如何挽救 ActiveRecord::StatementInvalid 错误

php - Yii2:无法通过 + 1 更新列值

mysql - 如何在 MySQL 中为表和该表的列创建同义词?

mysql - 如何优化这些 SQL 查询?

php - 指定 Eloquent 模型上可以访问和查询哪些列

mysql 使用 group by 连接 3 个表

ruby-on-rails - 如何在保留所有者和权限的同时从数据容器装载卷?