Permalink
Browse files

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
  • Loading branch information...
1 parent 9fad325 commit 369d0543380d302fb4b4fc30d4f6d52f07f9c0b6 @jamis jamis committed Jul 27, 2005
View
@@ -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 @@ def create_table(name, options = {})
create_sql << "#{name} ("
create_sql << table_definition.to_sql
create_sql << ") #{options[:options]}"
-
execute create_sql
end
@@ -518,9 +517,7 @@ def initialize(base)
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 @@ def [](name)
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 @@ def test_add_index
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 @@ def test_migrator_going_down_due_to_version_target
assert_equal "hello world", Reminder.find(:first).content
end
end
-end
+end

0 comments on commit 369d054

Please sign in to comment.