2011-03-18 101 views
1

我現在得到的git以下錯誤:Heroku的軌道遷移問題

[email protected] /c/rails/konkurranceportalen (master) 
    $ heroku rake db:migrate 
    (in /app/x/home) 
    == DeviseCreateAdmins: migrating ============================================= 
    -- create_table(:admins) 
     -> 0.0148s 
    -- add_index(:admins, :email, {:unique=>true}) 
     -> 0.0231s 
    -- add_index(:admins, :reset_password_token, {:unique=>true}) 
    rake aborted! 
    An error has occurred, this and all later migrations canceled: 

    PGError: ERROR: column "reset_password_token" does not exist 
    : CREATE UNIQUE INDEX "index_admins_on_reset_password_token" ON "admins" ("reset 
    _password_token") 

    (See full trace by running task with --trace) 

我已經在我的應用改變了我的本地計算機上的遷移文件。但是,當我使用heroku rake db:migrate時,它似乎沒有任何改變。我已經運行git push heroku master。 我可以在本地機器上遷移數據庫。我目前在phpmyadmin中使用Mysql。

是否必須更改我的database.yml是否將我的應用程序不推送到heroku?

下面是一些我的database.yml的:

production: 
     adapter: mysql 
     database: rails_p 
     encoding: utf8 
     pool: 5 
     username: root 
     password: 
     socket: C:/xampp/mysql/bin/mysqld.sock 
     host: 127.0.0.1 

我的遷移:

class DeviseCreateAdmins < ActiveRecord::Migration 
    def self.up 
    create_table(:admins) do |t| 
     t.database_authenticatable :null => false 
     t.rememberable 
     t.timestamps 
    end 

    add_index :admins, :email,    :unique => true 
    # add_index :admins, :confirmation_token, :unique => true 
    # add_index :admins, :unlock_token,   :unique => true 
    end 

    def self.down 
    drop_table :admins 
    end 
end 
+0

的Heroku忽略你的database.yml。它使用他自己的配置和postgresql – 2011-03-18 13:42:05

+0

你可以發佈你的遷移創建表管理員? – 2011-03-18 13:42:43

+0

我發佈了我的migratrion – 2011-03-18 15:34:20

回答

0
git commit -a -m "updated some files" 

然後混帳推Heroku的主

0

這可能是因爲錯誤是在不同的遷移發生的事情,因爲你不包括設計可恢復的列,並且您的腳本未引用列* reset_password_token *

難道是您想運行以下腳本?

class DeviseCreateUsers < ActiveRecord::Migration 
    def self.up 
    create_table(:users) do |t| 
     t.database_authenticatable :null => false 
     t.recoverable 
     t.rememberable 
     t.timestamps 
    end 

    add_index :users, :email,    :unique => true 
    add_index :users, :reset_password_token, :unique => true 
    end 

    def self.down 
    drop_table :users 
    end 
end 

請記住,當你使用Heroku的你把你的git倉庫,所以如果你有未提交的更改(如你所提到的),Heroku上不會看到他們。