我正在创建一个新的 Rails 3.1 应用程序。我希望这个新应用程序重用现有数据库(由以前的 rails 2 应用程序创建)。
我创建了新的应用程序定义模型,这些模型重用了数据库中的一些现有数据。
在开发和测试阶段一切正常,因为它运行在一个干净的表数据库上,但是在尝试部署到生产时,我收到如下消息:
PGError: ERROR: column "email" of relation "users" already exists
*** [err :: localhost] : ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT NULL
但是我在迁移中的想法是
class DeviseCreateUsers < ActiveRecord::Migration
def change
change_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
t.timestamps
end
end
如何让 db:migrate 忽略已经存在的内容,只更改新事物和/或新类型?
我在stackoverflow上看到了类似的问题,但没有人回答这个问题。感谢您的回答。