我生成了一个迁移,它将一个名为 encrypted_password 的列添加到我的数据库中存在的用户表中。这是由 rails 使用以下命令自动生成的:
rails generate migration add_password_to_users encrypted_password:string
class AddPasswordToUsers < ActiveRecord::Migration
def self.up
add_column :users, :encrypted_password, :string
end
def self.down
remove_column :users, :encrypted_password
end
end
我正在尝试删除并重新制作 users_table 中的 encrypted_password 列,所以这就是我正在做的事情:
rake db:migrate:down VERSION=20110712172013
(这就是迁移的时间戳)
rake db:migrate
(我也试过rake db:migrate:redo VERSION=20110712172013
)
我收到此错误: SQLite3::SQLException: 重复列名: encrypted_password: ALTER TABLE "users" ADD "encrypted_password" varchar(255)
因此,出于某种原因,向下迁移并没有真正删除该列。有人知道为什么吗?