use :force => true to drop tables before creating them. Here's an example from a test of my own:
> class MyMigration < ActiveRecord::Migration > def self.up > create_table :as, :force => true do |t| > t.integer :c_id > end > create_table :bs, :force => true do |b| > b.integer :a_id > b.integer :c_id > b.timestamps > end > create_table :cs, :force => true do |b| > end > end > end 2010/6/11 J. Pablo Fernández <[email protected]> > Hello, > > I'm a beginner, so any hints are appreciated; I'm still trying to find my > way around Rails code. For a bug I've found I need to create a table called > "values" so I added this: > > create_table :values do |t| > t.integer :value > end > > among the other table creations in > activerecord/test/cases/migration_test.rb. Is that ok? But then, when I run > the tests for a second time, I get an error about values already existing. > Where are the drop table calls? I couldn't find them. > > My more immediate problem so far is that I'm getting this error: > > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:210:in > `log': Mysql::Error: Table 'camelcase' already exists: CREATE TABLE > `CamelCase` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` > varchar(255)) ENGINE=InnoDB (ActiveRecord::StatementInvalid) > > It started happening when I was playing with adding and not adding value. > The whole output is bellow. The puzzling part is that CamelCase doesn't > exist. I actually dropped and re-created the activerecord_unittest tables > just to be sure. It never creates CamelCase in there. SQlite3 tests run just > fine, I haven't tried PostgreSQL. > > This is the state of the databases just after running the tests and > failing: > > mysql> use activerecord_unittest; > Reading table information for completion of table and column names > You can turn off this feature to get a quicker startup with -A > > Database changed > mysql> show tables; > +---------------------------------+ > | Tables_in_activerecord_unittest | > +---------------------------------+ > | accounts | > | admin_accounts | > | admin_users | > | audit_logs | > | author_addresses | > | author_favorites | > | authors | > | auto_id_tests | > | binaries | > | birds | > | books | > | booleantests | > +---------------------------------+ > 12 rows in set (0.00 sec) > > mysql> use activerecord_unittest2 > Database changed > mysql> show tables; > Empty set (0.00 sec) > > mysql> > > Any ideas what's going on? > > Thanks. > -- > J. Pablo Fernández <[email protected]> (http://pupeno.com) > > PS: the whole output: > > pup...@lennon:~/Projects/rails/rails/activerecord$ rake test_mysql --trace > (in /Users/pupeno/Projects/rails/rails/activerecord) > ** Invoke test_mysql (first_time) > ** Execute test_mysql > /Users/pupeno/.rvm/rubies/ruby-1.8.7-p174/bin/ruby -w > -I"lib:test:test/connections/native_mysql" > "/Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" > "test/cases/active_schema_test_mysql.rb" "test/cases/adapter_test.rb" > "test/cases/aggregations_test.rb" "test/cases/ar_schema_test.rb" > "test/cases/associations/belongs_to_associations_test.rb" > "test/cases/associations/callbacks_test.rb" > "test/cases/associations/cascaded_eager_loading_test.rb" > "test/cases/associations/eager_load_includes_full_sti_class_test.rb" > "test/cases/associations/eager_load_nested_include_test.rb" > "test/cases/associations/eager_singularization_test.rb" > "test/cases/associations/eager_test.rb" > "test/cases/associations/extension_test.rb" > "test/cases/associations/habtm_join_table_test.rb" > "test/cases/associations/has_and_belongs_to_many_associations_test.rb" > "test/cases/associations/has_many_associations_test.rb" > "test/cases/associations/has_many_through_associations_test.rb" > "test/cases/associations/has_one_associations_test.rb" > "test/cases/associations/has_one_through_associations_test.rb" > "test/cases/associations/inner_join_association_test.rb" > "test/cases/associations/inverse_associations_test.rb" > "test/cases/associations/join_model_test.rb" > "test/cases/associations_test.rb" "test/cases/attribute_methods_test.rb" > "test/cases/autosave_association_test.rb" "test/cases/base_test.rb" > "test/cases/batches_test.rb" "test/cases/binary_test.rb" > "test/cases/calculations_test.rb" "test/cases/callbacks_test.rb" > "test/cases/column_alias_test.rb" "test/cases/column_definition_test.rb" > "test/cases/connection_pool_test.rb" "test/cases/connection_test_mysql.rb" > "test/cases/counter_cache_test.rb" "test/cases/database_statements_test.rb" > "test/cases/date_time_test.rb" "test/cases/defaults_test.rb" > "test/cases/deprecated_finder_test.rb" "test/cases/dirty_test.rb" > "test/cases/finder_respond_to_test.rb" "test/cases/finder_test.rb" > "test/cases/fixtures_test.rb" "test/cases/i18n_test.rb" > "test/cases/inheritance_test.rb" "test/cases/invalid_date_test.rb" > "test/cases/json_serialization_test.rb" "test/cases/lifecycle_test.rb" > "test/cases/locking_test.rb" "test/cases/log_subscriber_test.rb" > "test/cases/method_scoping_test.rb" "test/cases/migration_test.rb" > "test/cases/mixin_test.rb" "test/cases/modules_test.rb" > "test/cases/multiple_db_test.rb" "test/cases/named_scope_test.rb" > "test/cases/nested_attributes_test.rb" "test/cases/pk_test.rb" > "test/cases/pooled_connections_test.rb" "test/cases/query_cache_test.rb" > "test/cases/readonly_test.rb" "test/cases/reflection_test.rb" > "test/cases/relations_test.rb" "test/cases/reload_models_test.rb" > "test/cases/reserved_word_test_mysql.rb" "test/cases/sanitize_test.rb" > "test/cases/schema_dumper_test.rb" "test/cases/serialization_test.rb" > "test/cases/timestamp_test.rb" "test/cases/transaction_callbacks_test.rb" > "test/cases/transactions_test.rb" "test/cases/unconnected_test.rb" > "test/cases/validations/association_validation_test.rb" > "test/cases/validations/i18n_generate_message_validation_test.rb" > "test/cases/validations/i18n_validation_test.rb" > "test/cases/validations/uniqueness_validation_test.rb" > "test/cases/validations_test.rb" "test/cases/xml_serialization_test.rb" > "test/cases/yaml_serialization_test.rb" > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@railsdev/gems/bundler-0.9.26/lib/bundler.rb:72: > warning: instance variable @setup not initialized > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@railsdev/gems/bundler-0.9.26/lib/bundler/runtime.rb:145: > warning: method redefined; discarding old path > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@railsdev/bundler/gems/arel-8151ac946644aab31601d7c0ed944eb9d7ea1e6b-master/lib/arel/algebra/relations/utilities/compound.rb:36: > warning: method redefined; discarding old engine > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@railsdev/bundler/gems/arel-8151ac946644aab31601d7c0ed944eb9d7ea1e6b-master/lib/arel/algebra/relations/operations/lock.rb:6: > warning: method redefined; discarding old initialize > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@railsdev/bundler/gems/arel-8151ac946644aab31601d7c0ed944eb9d7ea1e6b-master/lib/arel/engines/memory/relations/array.rb:9: > warning: method redefined; discarding old initialize > Using native MySQL > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:210:in > `log': Mysql::Error: Table 'camelcase' already exists: CREATE TABLE > `CamelCase` (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` > varchar(255)) ENGINE=InnoDB (ActiveRecord::StatementInvalid) > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:286:in > `execute_without_query_record' > from ./test/cases/helper.rb:40:in `execute' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:119:in > `create_table' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:442:in > `create_table' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/migration.rb:356:in > `send' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/migration.rb:356:in > `method_missing' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/migration.rb:332:in > `say_with_time' > from > /Users/pupeno/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/benchmark.rb:293:in > `measure' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/migration.rb:332:in > `say_with_time' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/migration.rb:352:in > `method_missing' > from > /Users/pupeno/Projects/rails/rails/activerecord/test/schema/schema.rb:82 > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/schema.rb:49:in > `instance_eval' > from > /Users/pupeno/Projects/rails/rails/activerecord/lib/active_record/schema.rb:49:in > `define' > from > /Users/pupeno/Projects/rails/rails/activerecord/test/schema/schema.rb:3 > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:208:in > `load' > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:208:in > `load' > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:198:in > `load_dependency' > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:554:in > `new_constants_in' > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:198:in > `load_dependency' > from > /Users/pupeno/Projects/rails/rails/activesupport/lib/active_support/dependencies.rb:208:in > `load' > from ./test/cases/helper.rb:78 > from ./test/cases/active_schema_test_mysql.rb:1:in `require' > from ./test/cases/active_schema_test_mysql.rb:1 > from > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in > `load' > from /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global > /gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5 > from > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in > `each' > from /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global > /gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5 > rake aborted! > Command failed with status (1): > [/Users/pupeno/.rvm/rubies/ruby-1.8.7-p174/...] > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:995:in > `sh' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1010:in > `call' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1010:in > `sh' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1094:in > `sh' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1029:in > `ruby' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1094:in > `ruby' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake/testtask.rb:117:in > `define' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1112:in > `verbose' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake/testtask.rb:102:in > `define' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:636:in > `call' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:636:in > `execute' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:631:in > `each' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:631:in > `execute' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:597:in > `invoke_with_call_chain' > /Users/pupeno/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/monitor.rb:242:in > `synchronize' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:590:in > `invoke_with_call_chain' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:583:in > `invoke' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2051:in > `invoke_task' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2029:in > `top_level' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2029:in > `each' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2029:in > `top_level' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2023:in > `top_level' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2001:in > `run' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/lib/rake.rb:1998:in > `run' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/gems/rake-0.8.7/bin/rake:31 > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/bin/rake:19:in `load' > /Users/pupeno/.rvm/gems/ruby-1.8.7-p...@global/bin/rake:19 > pup...@lennon:~/Projects/rails/rails/activerecord$ > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<rubyonrails-core%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-core?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
