test database and migrations

Hi,

I'd like to have the results of a migration file that prepopulates my development database available for testing. So, right now, after the usual rake migration, I can access my prepopulated data via script/ console, but not in my unit tests. I've reviewed comments on this subject but the custom rake tasks do not work or attempting a fix with RAILS_ENV=test rake db:migrate as a command does not help either. Any suggestion on how I can get the results of my migration available in the test environment?

Thanks,

Grar

Hi,

I'd like to have the results of a migration file that prepopulates my development database available for testing. So, right now, after the usual rake migration, I can access my prepopulated data via script/ console, but not in my unit tests. I've reviewed comments on this subject but the custom rake tasks do not work or attempting a fix with RAILS_ENV=test rake db:migrate as a command does not help either. Any suggestion on how I can get the results of my migration available in the test environment?

The test database is filled with the data from your fixture files - running migrations against it accomplish nothing because it is wiped at the start of the test run. Your best bet is probably to write something that will dump yml from your database. You should consider using db/seeds.rb to seed your database - migrations are not intended to fufill that need.

Fred

Frederick,

Thanks. So, my desire to have pre-populated (whether from seeding or otherwise) databases available in testing is unusual? I would have expected a basic interest in having any and all development data, e.g., zip code data, available for testing purposes, but my takeaway from your response is that testing is typically performed on a limited subset of development/production data that has been supplied from fixtures. Can you please confirm?

Thanks,

Grar

Frederick,

Thanks. So, my desire to have pre-populated (whether from seeding or otherwise) databases available in testing is unusual? I would have expected a basic interest in having any and all development data, e.g., zip code data, available for testing purposes, but my takeaway from your response is that testing is typically performed on a limited subset of development/production data that has been supplied from fixtures. Can you please confirm?

Correct (although there's no constraint I'm aware of on the size of your fixture data). You want test runs to be consistent - having the dataset your tests run against change just because you've been messing around in development would be a bad thing. More and more people are actually skipping fixtures and using stuff like factory_girl.

Fred