Forum: Ruby on Rails Pre-populate db with yaml outside of testing?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Zack C. (Guest)
on 2006-01-20 22:40
(Received via mailing list)
Hi.

What is the best way to pre-populate your database with records while
developing, not testing?

For example, I want to:
1) > [run this command to populate db]
2) > ruby script/server
3) now I can surf to localhost:3000 and my app will already have
relevant
data

I'm hoping to use yaml to suck it in.

Is there a way to use the Fixture class to handle this even though this
is
outside the typical testing methods?

Thanks,
Zack
matthew clark (Guest)
on 2006-01-20 23:01
(Received via mailing list)
That is a great question.  I'll be intersted to see the answers.

I use mysql to do this for me.

Basically, I create a file called data_load.sql.  Rows in it look like
this-

INSERT INTO table ('field_1', 'field_2') VALUES ('value 1', 'value 2');

Then every time I blow my development db away, I run -
mysql -u <<user>> -p<<password>> database_name < data_load.sql

I think it would be better to use yml because doing what I describe
above is
not DRY.  I am always setting up the testing yml fixtures, and writting
insert commands in my data_load.sql for the same records.  To me, that
seems
like the worst kind of unDRYness.

matt
Matthew P. (Guest)
on 2006-01-20 23:58
(Received via mailing list)
On Fri, Jan 20, 2006 at 12:00:08PM -0800, Zack C. wrote:
>
> Is there a way to use the Fixture class to handle this even though this is
> outside the typical testing methods?

As always, rake is your best friend.  Run "rake load_fixtures" and all
of
the data in your fixtures will end up in the current environment's
database
(default: development, but I presume that RAILS_ENV=production rake
load_fixtures would do the obvious thing).

- Matt

--
A few minutes ago I attempted to give a flying fsck, but the best I
could do
was to watch it skitter across the floor.
		-- Anthony de Boer, ASR
Joshua S. (Guest)
on 2006-01-21 02:02
Matthew P. wrote:
> As always, rake is your best friend.  Run "rake load_fixtures" and all of
> the data in your fixtures will end up in the current environment's database
> (default: development, but I presume that RAILS_ENV=production rake
> load_fixtures would do the obvious thing).

That's all well and good... but is there an easy way to keep a set of
fixtures for development that are different from the set you use for
testing?

thanks,
j
Carl F. (Guest)
on 2006-01-21 19:35
(Received via mailing list)
I am surprised this has not come up earlier. How do most people
pre-populate lookup values in the database? I was hoping there would
be a structure similar to mocks (mocks/development and mocks/test) in
the fixtures directory. If you build it like this then you are able to
satisfy all of the different environments. I definitely don't want my
test data to be pushed into my database. Any suggestions would be
great.
Ezra Z. (Guest)
on 2006-01-21 22:37
(Received via mailing list)
Here is a blog post by topfunky that might do what you are looking for:

http://nubyonrails.topfunky.com/articles/2005/12/2...
yaml-reference-data

Cheers-
-Ezra

On Jan 21, 2006, at 9:32 AM, Carl F. wrote:

>>> As always, rake is your best friend.  Run "rake load_fixtures"
>> thanks,
> Rails mailing list
> removed_email_address@domain.invalid
> http://lists.rubyonrails.org/mailman/listinfo/rails
>

-Ezra Z.
WebMaster
Yakima Herald-Republic Newspaper
removed_email_address@domain.invalid
509-577-7732
Zack C. (Guest)
on 2006-01-23 08:02
(Received via mailing list)
Thanks Ezra - I had looked at this as a possibility.

>rake load_fixtures
works great for now.

Zack
This topic is locked and can not be replied to.