# Is "rake db:test:prepare" support to (a) setup FK constraint

**URL:** <https://www.ruby-forum.com/t/is-rake-dbprepare-support-to-a-setup-fk-constraint/105764>\
**Category:** Rails\
**Created:** [June 2, 2007, 8:44am UTC](https://www.ruby-forum.com/t/is-rake-dbprepare-support-to-a-setup-fk-constraint/105764 "2007-06-02T08:44:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [June 2, 2007, 8:44am UTC](https://www.ruby-forum.com/t/is-rake-dbprepare-support-to-a-setup-fk-constraint/105764/1 "2007-06-02T08:44:00Z")

</div>

Hi,

Just noting (as I start to use unit tests) that when I issue “rake  
db:test:prepare” that what I do NOT see in my test database (as I do in  
development when running “rake db:migrate”):

(a) FK constraints don’t seem to be put in place in my test database.  
Extract from the migration  
def self.up  
down  
directory = File.join(File.dirname( **FILE** ), “dev\_data”)  
Fixtures.create\_fixtures(directory, “donations”)  
Fixtures.create\_fixtures(directory, “donation\_events”)  
Fixtures.create\_fixtures(directory, “comments”)  
end

(b) Test Data wasn’t loaded - I had one of my migrations that had test  
data  
I was loading. This didn’t seem to get loaded.

Is this expected? Should “rake db:test:prepare” not emulate the same as  
running “rake db:migrate” in development?

Thanks  
Greg

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [June 6, 2007, 10:14pm UTC](https://www.ruby-forum.com/t/is-rake-dbprepare-support-to-a-setup-fk-constraint/105764/2 "2007-06-06T22:14:44Z")

</div>

(bump) - i.e. Should “rake db:test:prepare” not emulate the same as  
running  
“rake db:migrate” in development? (e.g. creation of same FK  
constraints)

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [June 7, 2007, 10:30am UTC](https://www.ruby-forum.com/t/is-rake-dbprepare-support-to-a-setup-fk-constraint/105764/3 "2007-06-07T10:30:43Z")

</div>

On 6/6/07, Greg H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> (bump) - i.e. Should “rake db:test:prepare” not emulate the same as running  
> “rake db:migrate” in development? (e.g. creation of same FK constraints)

db:test:prepare runs either db:test:clone, or db:test:clone\_structure,  
based on whether config.active\_record.schema\_format is :ruby or :sql.

I assume that clone\_structure (i.e. :sql) is least likely to ignore your  
FKs.

You’ll find the code for the db tasks at  
[http://dev.rubyonrails.org/browser/trunk/railties/lib/tasks/databases.rake](http://dev.rubyonrails.org/browser/trunk/railties/lib/tasks/databases.rake).

HTH,  
Isak
