[rspec-users] Database clearing
Scott Taylor
mailing_lists at railsnewbie.com
Sun Sep 21 02:49:22 EDT 2008
On Sep 20, 2008, at 8:53 PM, Ben Mabey wrote:
> Ben Mabey wrote:
>> Scott Taylor wrote:
>>
>>> On Sep 20, 2008, at 7:18 PM, Ben Mabey wrote:
>>>
>>>
>>>> Todd Tyree wrote:
>>>>
>>>>> Ok, here's what I've come up with on the spur of the moment
>>>>> (goes in
>>>>> spec_helper.rb):
>>>>>
>>>>> config.after(:each) do
>>>>> result = ActiveRecord::Base.connection.execute('SHOW TABLES;')
>>>>> while table = result.fetch_row
>>>>> # Or whatever you think is appropriate.
>>>>> next if table.index('schema_migrations') or
>>>>> table.index('roles')
>>>>> ActiveRecord::Base.connection.execute("TRUNCATE #{table}")
>>>>> end
>>>>> end
>>>>>
>>>>>
>>>> I've used a similar method before.. However, your 'SHOW TABLES'
>>>> and next
>>>> is not needed:
>>>>
>>>>
>>>> (ActiveRecord::Base.connection.tables -
>>>> %w{schema_migrations}).each do
>>>> |table_name|
>>>>
>>> Yeah, that's just a cleaner way of doing it - I'm sure if you tailed
>>> your logs you'd find a 'SHOW TABLES'
>>>
>>>
>> Yeah, depending on the rails environment it probably and caching it
>> probably would.
>>
>
> English FAIL. I meant to say:
>
> Yeah, depending on the rails environment and caching settings it
> probably would.
Does ActiveRecord cache table names? I'm well aware of it caching
table columns:
http://github.com/smtlaissezfaire/smt_migration_fixes/tree/master/lib/smt/migration_fixes.rb
Scott
More information about the rspec-users
mailing list