Rails/Rake Migrations - Newbie Question

Hello,

I have a problem understanding Rails/Rake migrations.

For example let’s say I have a migrate-script like this:

class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
t.string :username
t.string :password
t.string :email
t.timestamps
end

User.create :name=>"John

Smith", :email=>“[email protected]”, :username=>“js”,
:password=“jsRules!”
end

def self.down
drop_table :users
end
end

If I do a migration with db:reset it will update all tables, DELETE
EVERYTHING, and then insert John S…

However, let’s say I want to add a

t.string :secret_answer

to that model, and migrate it, what do I use?

I would like to keep all data already in DB and just have rake add one
column to the table.

I tried migrate:redo, migrate.up etc. The latter even requires a
Version value. What do I enter here?

Now this is obviously a very noobish question, but maybe one of you
can clarify.

FYI, I’m using latest RoR with Aptana on Windows7 and mySQL as DB-
backend.

Thanks,
Lukas

On 17 February 2010 13:12, lukas [email protected] wrote:

 t.string :username

drop_table :users

to that model, and migrate it, what do I use?

I would like to keep all data already in DB and just have rake add one
column to the table.

I tried migrate:redo, migrate.up etc. The latter even requires a
Version value. What do I enter here?

To apply migrations that have not already been applied use
rake db:migrate

http://guides.rubyonrails.org/ has a guide on migrations, but start
with Getting Started if you have not already worked through that.
Then work through the others.

Colin

Colin, Thanks.

You know, I first looked at Rails one year ago and knew this. But
somehow I forgot it. Thanks for pointing knucklehead-me back to the
basics. :slight_smile:

I basically create new migrations and then db:migrate works like a
charm.

Thanks!