Forum: Ruby on Rails Problem with creating migration files

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.
57c6a3276ed9cbb3b271e5dd067f0724?d=identicon&s=25 Indu R Nair (indu)
on 2008-11-26 12:51

Hello ,

  I am a ROR beginner. I have a controller named "users" and the
corresponding view,model created using the command "ruby script/generate
scaffold user name:string".By running the command rake db:migrate will
create the table "users" with a field "name" and the migration file
created automatically is "001_create_users.rb". Now when I tried to add
one more column "password" ,by creating a new migration file using the
command "ruby script/generate migration create_users" an error is
occuring
like "Another file named 001_create_users.rb already exists". May any
one let me know what is the problem? I am using the right way or not?

Thanks in advance
Indu
3e7125e49df65681624b292c6cc0e92a?d=identicon&s=25 blasterpal (Guest)
on 2008-11-26 14:05
(Received via mailing list)
Once a migration is created with the scaffold command it cannot be
altered with the scaffold command. Only manually. However, once a
migration file has been used by running rake db:migrate, you are not
recommended to alter this file in a real production site, but rather
you must make a new migration file, but not using scaffold:

script/generate migration AddPasswordColumn

This command would create a new migration file where you can add/alter/
delete database columns and schema.


However, if you are testing and want to redo your first scaffold
command:

rake db:migrate VERSION=0

And now edit the file and rerun:

rake db:migrate

Hank
57c6a3276ed9cbb3b271e5dd067f0724?d=identicon&s=25 Indu R Nair (indu)
on 2008-11-27 05:38
Thank you for your response and solved my issue
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-27 06:14
Hi Indu
    Did u start the project?
After running script/generate migration AddPasswordColumn  you can do
like
 In self.up
 add_column :users,:password, :string

and may write in self.down (only if needed)

remove_column :users, :password

      Then as usual rake db:migrate

Sijo
57c6a3276ed9cbb3b271e5dd067f0724?d=identicon&s=25 Indu R Nair (indu)
on 2008-11-27 12:53
Sijo Kg wrote:
> Hi Indu
>     Did u start the project?
> After running script/generate migration AddPasswordColumn  you can do
> like
>  In self.up
>  add_column :users,:password, :string
>
> and may write in self.down (only if needed)
>
> remove_column :users, :password
>
>       Then as usual rake db:migrate
>
> Sijo

Thank u Sijo. Just trying on it. Any idea of saving the encoded
password into the database.?
661ae6e97d0e16c2af2aaf7d197e8387?d=identicon&s=25 Sijo k g (sijo)
on 2008-11-28 09:02
Hi
   Suppose there is a User model So in the view you have

<%= password_field 'user', 'password'  %></p>
 Now write in User model

  before_create :protect_password
    def protect_password
        self.password = Digest::MD5.hexdigest(self.password)
    end

       There may be also other ways for doing this

Sijo
57c6a3276ed9cbb3b271e5dd067f0724?d=identicon&s=25 Indu R Nair (indu)
on 2008-11-28 11:39
Sijo Kg wrote:
> Hi
>    Suppose there is a User model So in the view you have
>
> <%= password_field 'user', 'password'  %></p>
>  Now write in User model
>
>   before_create :protect_password
>     def protect_password
>         self.password = Digest::MD5.hexdigest(self.password)
>     end
>
>        There may be also other ways for doing this
>
> Sijo

Thank you so much for your help. I tried this one and can save the
encrypted password.
This topic is locked and can not be replied to.