Skip to content

Commit

Permalink
Merge pull request #3334 from mperham/master
Browse files Browse the repository at this point in the history
Default timestamps to non-null
  • Loading branch information
tenderlove committed Oct 16, 2011
2 parents f10d62c + 3dbedd2 commit 8919a68
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
Expand Up @@ -252,7 +252,7 @@ def #{column_type}(*args) # def st
# Appends <tt>:datetime</tt> columns <tt>:created_at</tt> and # Appends <tt>:datetime</tt> columns <tt>:created_at</tt> and
# <tt>:updated_at</tt> to the table. # <tt>:updated_at</tt> to the table.
def timestamps(*args) def timestamps(*args)
options = args.extract_options! options = { :null => false }.merge(args.extract_options!)
column(:created_at, :datetime, options) column(:created_at, :datetime, options)
column(:updated_at, :datetime, options) column(:updated_at, :datetime, options)
end end
Expand Down
Expand Up @@ -507,8 +507,8 @@ def distinct(columns, order_by)
# ===== Examples # ===== Examples
# add_timestamps(:suppliers) # add_timestamps(:suppliers)
def add_timestamps(table_name) def add_timestamps(table_name)
add_column table_name, :created_at, :datetime add_column table_name, :created_at, :datetime, :null => false
add_column table_name, :updated_at, :datetime add_column table_name, :updated_at, :datetime, :null => false
end end


# Removes the timestamp columns (created_at and updated_at) from the table definition. # Removes the timestamp columns (created_at and updated_at) from the table definition.
Expand Down
10 changes: 5 additions & 5 deletions activerecord/test/cases/migration_test.rb
Expand Up @@ -389,8 +389,8 @@ def test_create_table_with_timestamps_should_create_datetime_columns
created_at_column = created_columns.detect {|c| c.name == 'created_at' } created_at_column = created_columns.detect {|c| c.name == 'created_at' }
updated_at_column = created_columns.detect {|c| c.name == 'updated_at' } updated_at_column = created_columns.detect {|c| c.name == 'updated_at' }


assert created_at_column.null assert !created_at_column.null
assert updated_at_column.null assert !updated_at_column.null
ensure ensure
Person.connection.drop_table table_name rescue nil Person.connection.drop_table table_name rescue nil
end end
Expand Down Expand Up @@ -471,11 +471,11 @@ def test_native_decimal_insert_manual_vs_automatic


# Do a manual insertion # Do a manual insertion
if current_adapter?(:OracleAdapter) if current_adapter?(:OracleAdapter)
Person.connection.execute "insert into people (id, wealth) values (people_seq.nextval, 12345678901234567890.0123456789)" Person.connection.execute "insert into people (id, wealth, created_at, updated_at) values (people_seq.nextval, 12345678901234567890.0123456789, 0, 0)"
elsif current_adapter?(:OpenBaseAdapter) || (current_adapter?(:MysqlAdapter) && Mysql.client_version < 50003) #before mysql 5.0.3 decimals stored as strings elsif current_adapter?(:OpenBaseAdapter) || (current_adapter?(:MysqlAdapter) && Mysql.client_version < 50003) #before mysql 5.0.3 decimals stored as strings
Person.connection.execute "insert into people (wealth) values ('12345678901234567890.0123456789')" Person.connection.execute "insert into people (wealth, created_at, updated_at) values ('12345678901234567890.0123456789', 0, 0)"
else else
Person.connection.execute "insert into people (wealth) values (12345678901234567890.0123456789)" Person.connection.execute "insert into people (wealth, created_at, updated_at) values (12345678901234567890.0123456789, 0, 0)"
end end


# SELECT # SELECT
Expand Down

0 comments on commit 8919a68

Please sign in to comment.