Reputation: 28499
All the tables in the database created by a rails application seem to have created_at and updated_at columns. What creates these? Are they optional, or does something internal rely on them?
Upvotes: 18
Views: 25301
Reputation: 8744
In your database migration for every table you have something like t.timestamps
. Remove this from your migration and your database columns created_at and updated_at won't be created.
Edit:
In case you need to create a new migration to remove those columns you can use remove_timestamps or remove_column
remove_timestamps
definition shows how you can use remove_column
if you want to.
def remove_timestamps(table_name, **options)
remove_column table_name, :updated_at
remove_column table_name, :created_at
end
Upvotes: 4
Reputation: 115372
They are created by default when you run the ActiveRecord migration for a model. ActiveRecord automatically populates/updates them when you create or update a model instance (and thus the underlying database table row) respectively.
You can remove the columns by removing the t.timestamps
line from within the model migration file.
Upvotes: 27
Reputation: 991
Adding to what Octopus said, they are optional and are used to track the record creation and updating date time in the corresponding tables.
Upvotes: 1