created_at和updated_at列来自哪里?

由rails应用程序创建的数据库中的所有表似乎都有created_at和updated_at列。 什么创造了这些? 它们是可选的,还是内部依赖它们?

默认情况下,在为模型运行ActiveRecord迁移时会创建它们。 当您分别创建或更新模型实例(以及底层数据库表行)时,ActiveRecord会自动填充/更新它们。

您可以通过从模型迁移文件中删除t.timestamps行来删除列。

  • Ruby on Rails指南:迁移

在每个表的数据库迁移中,您有类似t.timestamps 。 删除此选项,将不会创建您的数据库列created_at和updated_at

除了Octopus所说的,它们是可选的,用于跟踪相应表格中的记录创建和更新日期时间。