tit*_*oul 2 migration ruby-on-rails heroku devise
我一直在开发一个关于localhost的网站,它很好.今天早上,我尝试使用命令"git push heroku master"将其推送到heroku,然后"heroku run rake db:migrate".当我尝试做第二个时,我有一个错误:
Connecting to database specified by DATABASE_URL
Migrating to DeviseCreateUsers (20130427200347)
Migrating to CreateAuthentications (20130427210108)
Migrating to AddTokenToAuth (20130427233400)
Migrating to AddNotificationToAuth (20130427234836)
Migrating to AddNotifToUser (20130428031013)
Migrating to AddDeviseToUsers (20130712103048)
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:
PGError: ERROR: column "email" of relation "users" already exists
: ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT N
sql_adapter.rb:652:in `async_exec'
Run Code Online (Sandbox Code Playgroud)
我找到了一个有同样问题的人(heroku PGError:已经存在500我们很抱歉,但出了点问题)但在我的情况下,迁移"AddDeviseToUsers"不在'db/migrate'文件夹中.
以前的迁移影响用户表是:
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, :default => 0
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Token authenticatable
# t.string :authentication_token
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
end
end
Run Code Online (Sandbox Code Playgroud)
和
class AddNotifToUser < ActiveRecord::Migration
def change
add_column :users, :notif, :string
end
end
Run Code Online (Sandbox Code Playgroud)
提前致谢 !!
编辑 - 运行时回答评论:heroku run rake db:migrate:status
up 20130427200347 Devise create users
up 20130427210108 Create authentications
up 20130427233400 Add token to auth
up 20130427234836 Add notification to auth
up 20130428031013 Add notif to user
down 20130712103048 Add devise to users
down 20130719091217 Create relationships
.
.
.
Run Code Online (Sandbox Code Playgroud)
我在现有模型的Devise迁移中找到了答案.
我所做的是在DeviseCreateUsers迁移中注释掉这一行:
"t.string :email, :null => false, :default => """
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5302 次 |
最近记录: |