mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
MySQL: fix change_column on not-null columns that don't accept dfeault values of ''. Closes #6663.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7790 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
b1e394e67f
commit
85c86f0999
3 changed files with 14 additions and 2 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* MySQL: fix change_column on not-null columns that don't accept dfeault values of ''. #6663 [Jonathan Viney, Tarmo Tänav]
|
||||
|
||||
* validates_uniqueness_of behaves well with single-table inheritance. #3833 [Gabriel Gironda, rramdas, François Beausoleil, Josh Peek, Tarmo Tänav]
|
||||
|
||||
* Raise ProtectedAttributeAssignmentError in development and test environments when mass-assigning to an attr_protected attribute. #9802 [Henrik N]
|
||||
|
|
|
@ -408,8 +408,8 @@ module ActiveRecord
|
|||
|
||||
def change_column(table_name, column_name, type, options = {}) #:nodoc:
|
||||
unless options_include_default?(options)
|
||||
if result = select_one("SHOW COLUMNS FROM #{table_name} LIKE '#{column_name}'")
|
||||
options[:default] = result['Default']
|
||||
if column = columns(table_name).find { |c| c.name == column_name.to_s }
|
||||
options[:default] = column.default
|
||||
else
|
||||
raise "No such column: #{table_name}.#{column_name}"
|
||||
end
|
||||
|
|
|
@ -429,6 +429,16 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
Person.connection.add_column("people", "first_name", :string) rescue nil
|
||||
end
|
||||
end
|
||||
|
||||
def test_change_type_of_not_null_column
|
||||
assert_nothing_raised do
|
||||
Topic.connection.change_column "topics", "written_on", :datetime, :null => false
|
||||
Topic.reset_column_information
|
||||
|
||||
Topic.connection.change_column "topics", "written_on", :datetime, :null => false
|
||||
Topic.reset_column_information
|
||||
end
|
||||
end
|
||||
|
||||
def test_rename_table
|
||||
begin
|
||||
|
|
Loading…
Reference in a new issue