ariana-paris / otwarchive-gcode-issues

Apache License 2.0
0 stars 0 forks source link

rake db:create fails because of validates_acceptance_of #38

Closed ariana-paris closed 9 years ago

ariana-paris commented 9 years ago

Original issue 38 created by ariana-paris on 2008-05-01T09:51:36.000Z:

What steps will reproduce the problem? <B>1.</B> drop your databases (rake db:drop:all) <B>2.</B> do rake db:create (or rake db:create:all)

<B>What is the expected output? What do you see instead?</B>

I expect my databases to be created. What happens is that I get this error: (Please ignore the strange db names, I edited config/database.yml, so my real database wouldn't get destroyed)

<tt> bfranken@bat:/tmp/otwarchive$ rake db:create:all (in /tmp/otwarchive) rake aborted! Unknown database 'foootwarchive_development'

(See full trace by running task with --trace) </TT>

and with trace: <tt> rake aborted! Unknown database 'foootwarchive_development' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/mysql_adapter.rb:471:in real_connect' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/mysql_adapter.rb:471:in connect' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/mysql_adapter.rb:165:in initialize' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/mysql_adapter.rb:88:in new' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/mysql_adapter.rb:88:in mysql_connection' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in send' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:291:in connection=' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:259:in retrieve_connection' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in connection' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/base.rb:1080:in columns' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/base.rb:1093:in column_names' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/validations.rb:467:in validates_acceptance_of_without_live_validations' /tmp/otwarchive/vendor/plugins/livevalidation/lib/live_validations.rb:25:in send' /tmp/otwarchive/vendor/plugins/livevalidation/lib/live_validations.rb:25:in validates_acceptance_of_with_live_validations' /tmp/otwarchive/app/models/user.rb:32:in validates_acceptance_of' /tmp/otwarchive/app/models/user.rb:32 /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in load_without_new_constant_marking' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:203:in load_file' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in new_constants_in' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:202:in load_file' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:94:in require_or_load' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:248:in load_missing_constant' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:453:in const_missing' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:465:in const_missing' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/inflector.rb:257:in constantize' /var/lib/gems/1.8/gems/activesupport-2.0.2/lib/active_support/core_ext/string/inflections.rb:148:in constantize' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:143:in observed_class' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:169:in observed_classes' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:152:in initialize' /usr/lib/ruby/1.8/singleton.rb:95:in new' /usr/lib/ruby/1.8/singleton.rb:95:ininstance' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:38:in instantiate_observers' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:36:in each' /var/lib/gems/1.8/gems/activerecord-2.0.2/lib/active_record/observer.rb:36:in instantiate_observers' /var/lib/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:216:inload_observers' /var/lib/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:108:in process' /var/lib/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:49:insend' /var/lib/gems/1.8/gems/rails-2.0.2/lib/initializer.rb:49:in run' /tmp/otwarchive/config/environment.rb:31 /usr/lib/ruby/1.8/rubygems/custom_require.rb:27:ingem_original_require' /usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in require' /var/lib/gems/1.8/gems/rails-2.0.2/lib/tasks/misc.rake:3 /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:incall' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in execute' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:ineach' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in execute' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:ininvoke_with_call_chain' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in synchronize' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:ininvoke_with_call_chain' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:518:in invoke_prerequisites' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:ineach' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in send' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:ineach' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:515:in invoke_prerequisites' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:507:ininvoke_with_call_chain' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in synchronize' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:ininvoke_with_call_chain' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in invoke' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1931:ininvoke_task' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in top_level' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:ineach' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in top_level' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in standard_exception_handling' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in top_level' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:inrun' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in standard_exception_handling' /var/lib/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:inrun' /var/lib/gems/1.8/gems/rake-0.8.1/bin/rake:31 /var/lib/gems/1.8/bin/rake:16:in `load' /var/lib/gems/1.8/bin/rake:16 (in /tmp/otwarchive) * Invoke db:create:all (first_time) * Invoke environment (first_time) \ Execute environment </tt>

I managed to trace this to validates_acceptance_of in user.rb in combination with :user_observer in config/environment.rb. validates_accptance_of calls ActiveRecord::Base#column_names() which connects to the database. (Which isn't there because we're trying to create it.)

It looks like this is related to a bug in Rails (maybe combined with restful_authentication and has_many_polymorphfs), see:

http://www.thewebfellas.com/blog/2007/12/16/rails-2-0-validates_acceptance_of-can-break-migrations

and for the fix in edge rails: http://dev.rubyonrails.org/ticket/10474

As a workaround I commented out the :user_observer line in config/environment.rb, so we can create databases. This means signup notification and activation emails WONT'T WORK.

ariana-paris commented 9 years ago

Comment #1 originally posted by ariana-paris on 2008-05-01T09:53:44.000Z:

urgh, sorry for the formatting. I didn't notice that html won't work here :-/

ariana-paris commented 9 years ago

Comment #2 originally posted by ariana-paris on 2008-05-02T20:31:25.000Z:

Some more background here: http://dev.rubyonrails.org/ticket/10474

I've switched the user validation to use validates_inclusion_of instead, which seems to fix the problem. User observer has been turned back on.

ariana-paris commented 9 years ago

Comment #3 originally posted by ariana-paris on 2008-05-12T20:36:39.000Z:

<empty>

ariana-paris commented 9 years ago

Comment #4 originally posted by ariana-paris on 2008-09-04T10:44:19.000Z:

<empty>

ariana-paris commented 9 years ago

Comment #5 originally posted by ariana-paris on 2008-09-04T23:56:26.000Z:

Closing this, as it's not something QA can test and it's working.

ariana-paris commented 9 years ago

Comment #6 originally posted by ariana-paris on 2009-02-25T01:43:18.000Z:

<empty>

ariana-paris commented 9 years ago

Comment #7 originally posted by ariana-paris on 2009-02-25T03:23:11.000Z:

Updating status on discussion with Jennifew and Sidra

ariana-paris commented 9 years ago

Comment #8 originally posted by ariana-paris on 2010-11-13T22:14:02.000Z:

listing all former issues for automated tests

ariana-paris commented 9 years ago

Comment #9 originally posted by ariana-paris on 2010-11-14T19:40:27.000Z:

Converting from NeedsTest status to NeedsTest label