我使用Rails 4,SQLite版本3.8.2,我想添加新列到我的數據庫。 創建新的遷移:Add_column遷移列順序
rails g migration AddFooToStudents foo:string
,所以我得到那麼:
class AddFooToStudents < ActiveRecord::Migration
def change
add_column :students, :foo, :string, after: :name
end
end
然後我跑遷移:
rake db:migrate
== 20150803095305 AddFooToStudents: migrating
=================================
-- add_column(:students, :foo, :string, {:after=>:name})
-> 0.0009s
== 20150803095305 AddFooToStudents: migrated (0.0011s)
========================
Everythink看來不錯,在數據庫已添加FOO列但不是名稱列後,它已被添加在表末尾
ActiveRecord::Schema.define(version: 20150803095305) do
create_table "students", force: :cascade do |t|
t.string "name"
t.string "lastname"
t.integer "age"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "second_name", default: "Untitled"
t.string "foo"
end
end
我完全不知道我做錯了
你沒有做錯什麼。這是運行遷移的正常工作行爲。已將「foo」列添加到表中。如果你絕對必須重新排列列,[這裏](http://stackoverflow.com/questions/18899011/rails-4-migration-how-to-reorder-columns)是一個完美的答案,已經存在。 –
請添加您的數據庫後端。 'mysql','pg','sqlite'? –
我面臨同樣的問題。 –