Ruby Forum Ruby on Rails > Before I write this myself, is there already an easier way?

Posted by Jeff Cohen (jeff)
on 27.01.2006 02:05
Recently I've wanted to be able to take the data I've painstakingly 
defined in my fixture files and slurp it up into my development database 
so I can play with my website (locally, in development mode) with the 
same data I use in my tests.

In a similar vein, I want to take the table definitions in the 
development_structure.sql file and use it to re-define my development 
database schema.  Unless I'm missing something obvious, when someone 
changes the db schema commits it into our subversion repository, I 
always have to hand-update my development db to match the new schema (if 
I don't want to toast the data that's already in there), or fire up my 
db tool, drop all the databases, then execute the _structure.sql script 
(and lose all my data).

Is there already something in rails that can do one or both of these for 
me?

I guess I could take a whack at writing a couple of rake tasks, but I'm 
hoping that surely someone else has already written these already?

Thanks!
Jeff
www.softiesonrails.com
Posted by Marcel Molina Jr. (Guest)
on 27.01.2006 02:22
(Received via mailing list)
On Fri, Jan 27, 2006 at 02:05:24AM +0100, Jeff Cohen wrote:
> I don't want to toast the data that's already in there), or fire up my 
> db tool, drop all the databases, then execute the _structure.sql script 
> (and lose all my data).
> 
> Is there already something in rails that can do one or both of these for 
> me?
> 
> I guess I could take a whack at writing a couple of rake tasks, but I'm 
> hoping that surely someone else has already written these already?

rake db_schema_import

rake load_fixtures

(all rake tasks are listed by running rake -T)

marcel
Posted by Rob Biedenharn (Guest)
on 27.01.2006 02:25
(Received via mailing list)
At 1/26/2006 08:05 PM, you wrote:
>Recently I've wanted to be able to take the data I've painstakingly
>defined in my fixture files and slurp it up into my development database
>so I can play with my website (locally, in development mode) with the
>same data I use in my tests.

rake load_fixtures
(you lose any data in your development database however)


>In a similar vein, I want to take the table definitions in the
>development_structure.sql file and use it to re-define my development
>database schema.  Unless I'm missing something obvious, when someone
>changes the db schema commits it into our subversion repository, I
>always have to hand-update my development db to match the new schema (if
>I don't want to toast the data that's already in there), or fire up my
>db tool, drop all the databases, then execute the _structure.sql script
>(and lose all my data).

You need to learn about Migrations
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
but there's more syntax explained with:
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html



>Is there already something in rails that can do one or both of these for
>me?
>
>I guess I could take a whack at writing a couple of rake tasks, but I'm
>hoping that surely someone else has already written these already?
>
>Thanks!
>Jeff
>www.softiesonrails.com


You're Welcome,
-Rob



Rob Biedenharn  Rob@agileconsultingllc.com
Agile Consulting LLC    http://agileconsultingllc.com
513-295-4739
Posted by matthew clark (Guest)
on 27.01.2006 05:40
(Received via mailing list)
rake load_fixtures

> (you lose any data in your development database however)



You do, but if your fixtures are set up properly, so what?  Why would 
there
be data in a development database that isn't in the fixtures?  If there 
is,
then the time spent tip-toeing around your databasee is going to nickel 
and
dime you until you've spent much more time doing things the hard way 
than
just taking an hour and writing robust fixtures.

Worse, you'll be less inclined to make data structure changes because of 
the
extra work managing data, when a structure change really is the best 
choice
for the project.

I recommend making the most out of tools like fixtures to manage your
development environment.  Your project will benefit from it in the long 
run.

matt
Posted by Jeff Cohen (jeff)
on 27.01.2006 16:16
Thanks everyone!

I did rake --tasks but obviously can't read. :-)

Jeff
Posted by Ezra Zygmuntowicz (Guest)
on 27.01.2006 18:45
(Received via mailing list)
On Jan 26, 2006, at 8:38 PM, matthew clark wrote:

> more time doing things the hard way than just taking an hour and  
> matt
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails


What about using this:

http://nubyonrails.com/articles/2005/12/27/dump-or-slurp-yaml-
reference-data

Cheers-
-Ezra Zygmuntowicz
Yakima Herald-Republic
WebMaster
http://yakimaherald.com
509-577-7732
ezra@yakima-herald.com