2013-08-19 59 views
0

嘗試重新安裝Devise。 PostgreSQL的Rails應用程序,正在安裝Devise,rake db:遷移錯誤

軌道4

我已經按照從設計指令(如添加設計寶石/包安裝)和所做的更改我的環境/ application.rb中/加了我的提示信息

然後跑

rails generate devise User

,並得到這個...

invoke active_record 

    create db/migrate/20130819025615_add_devise_to_users.rb 
    insert app/models/user.rb 
    route devise_for :users 

,但問題是,當我嘗試運行rake db:migrate我得到這個錯誤

== AddDeviseToUsers: migrating =============================================== -- change_table(:users) rake aborted! An error has occurred, this and all later migrations canceled: PG::UndefinedTable: ERROR: relation "users" does not exist : ALTER TABLE "users" ADD COLUMN "email" character varying(255) DEFAULT '' NOT NULL/Users/name/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in exec'

所以我的理解是,沒有表「用戶」存在錯誤告訴我,但是設計應該創造這一點,所以我的主要問題是...是什麼最簡單的方法來解決這個問題?

另外,爲什麼沒有設計創造這個?這會造成未來的問題嗎?

我應該在postgres中創建一個Users表,然後在Devise中再次運行該命令,並讓它更改必要的文件和「設計 - ify」它嗎? (如果它甚至會這樣做)

謝謝!

+0

嘗試運行'rake db:create'第一個 – 2013-08-19 03:54:25

+0

''rake db:setup'' –

+0

您可以粘貼您的db/migrate/20130819025615_add_devise_to_users.rb文件的內容嗎? –

回答

2

我不認爲Devise創建一個用戶表。 rails generate devise User只是生成將Devise與用戶表關聯的遷移。在你的情況下,用戶表尚不存在。因此,錯誤。首先,您應該編寫一個創建用戶表的遷移。例如:

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
    end 
    end 
end 

然後運行rake db:migrate。通過適當命名文件,確保創建表的遷移在 db/migrate/20130819025615_add_devise_to_users.rb之前運行

+1

這實際上並沒有解決我的問題,但這是基於給出的信息的最佳答案。任何人都可能提供最好的答案,因此我會接受它。但是對於將來的任何人來說,錯誤都在多個PG數據庫中。你應該刪除遷移和所有相關文件,直到你可以運行'rake db:migrate',然後檢查你的pg數據庫是否有重複,然後重新安裝pg和任何相關的東西。 –

+0

@ChristianFlores(我是初學者)。我想我和你有同樣的問題。如何檢查我的pg數據庫是否有重複? – dngoo

+0

nvm。得到它的工作。檢查 - 沒有重複。重新安裝了一切。很好去。 – dngoo

0

有很多方法餵養一隻貓(我是動物友好)

方法1:1。 軌道DB創建 2.軌DB設置 它執行你早先的遷移代碼,並建立用戶和其他遷徙。

方法2: - 創建使用「軌道生成設計用戶」 遷移 - 運行「耙分貝:遷移」 這將做了很好的工作,以及。

但是,如果您需要以任何方式在用戶表中添加其他字段,遷移就是這種方式。