On Sep 15, 2011, at 9:54 AM, Chandu80 wrote:
> On Sep 13, 11:32 am, David Chelimsky <dchelim...@gmail.com> wrote:
>> On Sep 12, 2011, at 2:44 PM, Chandu80 wrote:
>> 
>> 
>> 
>>> Hello All,
>> 
>>> I followed steps to install Rspec as in the link pasted below.
>> 
>>> http://www.pmamediagroup.com/2009/04/tutorial-install-rspec-rails-fac...
>> 
>>> I have jRuby on Rails installed on my machine.Hence all commands need
>>> to be run with jruby -S extension.
>>> However when I run the jruby -S rake spec command,I get the following
>>> error as shown below.
>> 
>>> ************************************************************************************************************************
>>> C:\Rspec Test>jruby -S rake spec --trace
>>> (in C:/Rspec Test)
>>> ** Invoke spec (first_time)
>>> ** Invoke db:test:prepare (first_time)
>>> ** Invoke db:abort_if_pending_migrations (first_time)
>>> ** Invoke environment (first_time)
>>> ** Execute environment
>>> db pool warmup starting...................... Mon Sep 12 18:05:23
>>> +0530 2011
>> 
>>> warmed
>>> up...........===========================================..............
>> 
>>> db pool warmup done........................... Mon Sep 12 18:05:23
>>> +0530 2011
>> 
>>> ** Execute db:abort_if_pending_migrations
>>> ** Execute db:test:prepare
>>> ** Invoke db:test:load (first_time)
>>> ** Invoke db:test:purge (first_time)
>>> ** Invoke environment
>>> ** Execute db:test:purge
>>> RspecTest already exists
>>> ** Execute db:test:load
>>> ** Invoke db:schema:load (first_time)
>>> ** Invoke environment
>>> ** Execute db:schema:load
>> 
>> When you run a spec suite, RSpec delegates to Rails to do the same work it 
>> does before and after a test suite. One task it runs is db:schema:load, 
>> which is defined in Rails. It asks the configured database for a list of 
>> tables and then tries to drop and recreate them. This ensures that any data 
>> from a previous run is removed, and the schema for the test db matches that 
>> of the development db.
>> 
>> 
>> 
>>> rake aborted!
>>> ActiveRecord::ActiveRecordError: ERROR: cannot drop table channels
>>> because other
>>> objects depend on it
>>>  Detail: constraint messages_channel_id_fk on table messages depends
>>> on table c
>>> hannels
>>> constraint invitation_workflow_mapping_invitor on table
>>> invitation_workflows dep
>>> ends on table channels
>>> constraint invitation_workflow_mapping_invited_whom_id on table
>>> invitation_workf
>>> lows depends on table channels
>>> constraint invitation_workflow_mapping_invited_for_channel_id on table
>>> invitatio
>>> n_workflows depends on table channels
>>>  Hint: Use DROP ... CASCADE to drop the dependent objects too.: DROP
>>> TABLE "cha
>>> nnels"
>> 
>> <snip/>
>> 
>>> What does the error indicate,I tried commenting all lines having
>>> drop_database statement in them.
>>> Another thing is that the database already has tables and by using the
>>> tutorial I have just added another table for the bank-account.
>>> Kindly let me know what exactly needs to be done in this case
>> 
>> The message tells you the underlying problem: there are database constraints 
>> that are not allowing the tables to be deleted in the order in which the 
>> rake task is trying to delete them. For whatever reason, the active record 
>> adapter you are using is not invoking a cascading delete. What adapter are 
>> you using? What database? Also, what other db-related gems do you have in 
>> the app? Just type `jruby -S bundle show`.

> So does that mean that I need to manually delete all other tables for
> the rake command to run successfully?

That needs to happen but the activerecord adapter you are using should handle 
it implicitly for you. Which one are you using?
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to