2014-04-22 66 views
1

我運行軌道1.9.3,我想一列添加到已遷移table.I嘗試了以下內容:添加列軌道表

首先,我剛纔編輯的遷移文件,並加入我的領域跑該rake db:migrate命令只看到以下錯誤:

NameError: undefined local variable or method `migrate' for main:Object 
from (irb):13 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start' 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start' 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>' 
from bin/rails:4:in `require' 
from bin/rails:4:in `<main>' 

接下來我試着從鐵軌控制檯中運行以下命令:

rails generate migration add_place_to_coordinates place:string 

只recie已經出現以下錯誤:

NameError: undefined local variable or method `string' for main:Object 
from (irb):10 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start' 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start' 
from /Users/praveenmody/.rvm/gems/ruby-1.9.3-p448/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>' 
from bin/rails:4:in `require' 
from bin/rails:4:in `<main>' 

這是我的遷移文件:

class CreateCoordinates < ActiveRecord::Migration 
def change 
create_table :coordinates do |t| 
    t.float :lattitude 
    t.float :longitude 

    t.timestamps 
end 
end 
end 

回答

4

不要運行在軌道控制檯的命令。從項目目錄中的普通外殼運行它。

2

有點晚了回答,希望它可以幫助別人:

軌產生遷移add_price_to_service_elements價格:小數

依次爲: 軌分貝:遷移

說明: 「添加'用於添加列,'價格'是要添加的列'至'引用了'service_elements'的表名。如果你用'_'(下劃線)分隔的引號加起來的文字,你會得到上面的命令。價格:小數進一步指定了值列的類型將在這種情況下存儲十進制值。

rake db:migrate命令檢查最新的遷移版本(在schema_migrations表中維護),在這種情況下執行由上述命令生成的遷移版本。

正如已經指出的那樣,這個命令需要從控制檯和應用程序目錄中運行。

更新:仍然要使其正常工作,文件需要手動更新以反映在瀏覽器上的更改: 例如,控制器,視圖(索引,顯示,_form)等。