我是铁杆新手;我的问题是: 我有一个供用户使用的表,我需要添加更多字段......
我把它放在哪里?
我试图将它放在迁移文件中,但是当我运行rake db:migrate
时,架构不会改变。
这是我的迁移文件:
def self.up
create_table :users do |t|
t.string :username, :null => false # if you use another field as a username, for example email, you can safely remove this field.
t.string :email, :default => nil # if you use this field as a username, you might want to make it :null => false.
t.string :crypted_password, :default => nil
t.string :salt, :default => nil
t.string :nombres, :default => nil
t.string :apellidos, :default => nil
t.string :codigo, :default => nil
t.string :fecha, :default => nil
t.string :zona, :default => nil
t.string :institucion, :default => nil
t.string :frecuencia, :default => nil
t.string :pregunta, :default => nil
t.string :respuesta, :default => nil
t.timestamps
end
架构仍然没有新字段
create_table "users", :force => true do |t|
t.string "username", :null => false
t.string "email"
t.string "crypted_password"
t.string "salt"
t.string "nombres"
t.string "apellidos"
t.string "codigo"
t.string "fecha"
t.string "zona"
t.string "institucion"
t.string "frecuencia"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "remember_me_token"
t.datetime "remember_me_token_expires_at"
end
我该怎么办?
答案 0 :(得分:2)
您可以使用迁移生成器:
$> rails g migration add_position_to_users position:integer
然后运行
$> rake db:migrate
或更复杂的迁移,rails还提供:
$> rails g migration add_body_and_pid_to_users body:string:index pid:integer:uniq:index
$> rake db:migrate
有关迁移的更多信息,请参阅railsguides http://guides.rubyonrails.org/migrations.html
答案 1 :(得分:1)
我认为我们在这里没有提到的是将代码添加到迁移文件中。
我添加列的步骤如下:
# rails generate migration AddFieldName blah:string
在生成的迁移文件中:
(顺便说一句,这通常看起来像:db / migrations / 20130330115915_add_field_name.rb)
class AddFieldName < ActiveRecord::Migration
def change
add_column :table_name, :blah, :string
end
end
进行此更改后,我然后运行db:migrate。然后,该列将添加到数据库中。