Forum: Ruby on Rails Migrations for initial schema: Where to put initial data?

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.
Mike D (Guest)
on 2006-02-25 12:26
Hi, I'm trying to get my head around using migrations to define my
initial schema.

When using migrations, I want to:
- Avoid creating a new migration for every small change. Limit it to one
migration per checkin.
- When creating a new (fresh) schema, I do not want to go through the
overhead of all the migrations.

These are the steps I came up with, to create the initial schema:

1. ruby script/generate migration initial
2. modify migration file
3. rake migrate
4. if more modifications required then
     rake migrate VERSION=0
     goto step 2
5. rake db_schema_dump
6. checkin

The next change basically goes through the same steps.

To create a fresh database without going through all the migrations:
1. checkout from SVN
2. rake db_schema_import

Now here come the questions:

a. Any comments on the procedure described above?

b. Where do I define the initial data? E.g. the statusses in a status
table.

In http://wiki.rubyonrails.org/rails/pages/Understand... it is
suggested to put these in a migration script. But these lines are NOT
carried over to schema.rb. So if I create a fresh database using the
procedure described above, it would not contain this initial data.

Thanks,
Mike.
Michael T. (Guest)
on 2006-02-25 12:36
(Received via mailing list)
Mike,

This is really a matter of preference, but unlike the Migrations
screencast I prefer to start out with a migration script that defines
the initial structure.  So instead of using a db/schema.rb file I
choose to just start with a migration.  That way you can get your
schema and lookup data all in there.  Also, the initial install is
simplified (as if it could be much more simple) in that all you have
to do is:

1. create the database
2. rake migrate

As far as getting to that first initial schema, I do exacly like
you've stated in the top portion, migrating and then rolling back
repeatedly until I'm comfortable.

Again, it's just preference.

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