mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix create_table so that id column is implicitly added [Rick Olson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1949 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
9fad3251d3
commit
369d054338
3 changed files with 16 additions and 6 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Fix create_table so that id column is implicitly added [Rick Olson]
|
||||
|
||||
* Default sequence names for Oracle changed to #{table_name}_seq, which is the most commonly used standard. In addition, a new method ActiveRecord::Base#set_sequence_name allows the developer to set the sequence name per model. This is a non-backwards-compatible change -- anyone using the old-style "rails_sequence" will need to either create new sequences, or set: ActiveRecord::Base.set_sequence_name = "rails_sequence" #1798
|
||||
|
||||
* OCIAdapter now properly handles synonyms, which are commonly used to separate out the schema owner from the application user #1798
|
||||
|
|
|
@ -384,7 +384,6 @@ module ActiveRecord
|
|||
create_sql << "#{name} ("
|
||||
create_sql << table_definition.to_sql
|
||||
create_sql << ") #{options[:options]}"
|
||||
|
||||
execute create_sql
|
||||
end
|
||||
|
||||
|
@ -518,9 +517,7 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
def primary_key(name)
|
||||
return unless column = self[name]
|
||||
column.type = native[:primary_key]
|
||||
self
|
||||
column(name, native[:primary_key])
|
||||
end
|
||||
|
||||
def [](name)
|
||||
|
@ -529,7 +526,7 @@ module ActiveRecord
|
|||
|
||||
def column(name, type, options = {})
|
||||
column = self[name] || ColumnDefinition.new(@base, name, type)
|
||||
column.limit = options[:limit] || native[type.to_sym][:limit]
|
||||
column.limit = options[:limit] || native[type.to_sym][:limit] if options[:limit] or native[type.to_sym]
|
||||
column.default = options[:default]
|
||||
@columns << column unless @columns.include? column
|
||||
self
|
||||
|
|
|
@ -39,6 +39,17 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
assert_nothing_raised { Person.connection.add_index("people", ["last_name", "first_name"]) }
|
||||
assert_nothing_raised { Person.connection.remove_index("people", "last_name") }
|
||||
end
|
||||
|
||||
def test_create_table_adds_id
|
||||
Person.connection.create_table :testings do |t|
|
||||
t.column :foo, :string
|
||||
end
|
||||
|
||||
assert_equal %w(foo id),
|
||||
Person.connection.columns(:testings).map { |c| c.name }.sort
|
||||
ensure
|
||||
Person.connection.drop_table :testings rescue nil
|
||||
end
|
||||
|
||||
def test_native_types
|
||||
Person.delete_all
|
||||
|
@ -198,4 +209,4 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
assert_equal "hello world", Reminder.find(:first).content
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue