Browse files

revert setting NOT NULL constraints in add_timestamps

Commit 3dbedd2 added NOT NULL constraints both to table
creation and modification. For creation the new default
makes sense, but the generic situation for changing a
table is that there exist records. Those records have
no creation or modification timestamps, and in the
general case you don't even know them, so when updating
a table these constraints are not going to work. See
a bug report for this use case in #3334.
  • Loading branch information...
1 parent c289790 commit bbe7dac2230c6c9410fda59f6b259d3e53ea437e @fxn fxn committed Mar 2, 2012
4 activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -508,8 +508,8 @@ def distinct(columns, order_by)
# ===== Examples
# add_timestamps(:suppliers)
def add_timestamps(table_name)
- add_column table_name, :created_at, :datetime, :null => false
- add_column table_name, :updated_at, :datetime, :null => false
+ add_column table_name, :created_at, :datetime
+ add_column table_name, :updated_at, :datetime
# Removes the timestamp columns (created_at and updated_at) from the table definition.

1 comment on commit bbe7dac


+1 to this. This is also problematic on old tables that were designed for HABTM relationships.

Please sign in to comment.