【发布时间】:2011-06-11 00:03:31
【问题描述】:
Rails 应用程序创建的数据库中的所有表似乎都有 created_at 和 updated_at 列。是什么创造了这些?它们是可选的,还是内部依赖它们?
【问题讨论】:
标签: ruby-on-rails database activerecord
Rails 应用程序创建的数据库中的所有表似乎都有 created_at 和 updated_at 列。是什么创造了这些?它们是可选的,还是内部依赖它们?
【问题讨论】:
标签: ruby-on-rails database activerecord
在每个表的数据库迁移中,您都有t.timestamps 之类的内容。从您的迁移中删除它,您的数据库列 created_at 和 updated_at 将不会被创建。
编辑:
如果您需要创建新的迁移来删除可以使用的那些列 remove_timestamps 或 remove_column
remove_timestamps 定义展示了如何使用remove_column。
def remove_timestamps(table_name, **options)
remove_column table_name, :updated_at
remove_column table_name, :created_at
end
【讨论】:
除了八达通所说,它们是可选的,用于跟踪相应表中的记录创建和更新日期时间。
【讨论】:
它们是在您为模型运行 ActiveRecord 迁移时默认创建的。当您分别创建或更新模型实例(以及基础数据库表行)时,ActiveRecord 会自动填充/更新它们。
您可以通过从模型迁移文件中删除 t.timestamps 行来删除列。
【讨论】: