1

我可以運行cap deploy成功,但是當我嘗試運行cap deploy:migrate,我收到以下錯誤:與Capistrano的部署,耙分貝:遷移

*** [err :: domain.com.br] rake aborted! 
*** [err :: domain.com.br] PG::Error: ERROR: Relation"posts"does not exist 
*** [err :: domain.com.br] LINE 4:    WHERE a.attrelid = '"posts"'::regclass 
*** [err :: domain.com.br]^
*** [err :: domain.com.br] :    SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
*** [err :: domain.com.br] FROM pg_attribute a LEFT JOIN pg_attrdef d 
*** [err :: domain.com.br] ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
*** [err :: domain.com.br] WHERE a.attrelid = '"posts"'::regclass 
*** [err :: domain.com.br] AND a.attnum > 0 AND NOT a.attisdropped 
*** [err :: domain.com.br] ORDER BY a.attnum 
*** [err :: domain.com.br] 
*** [err :: domain.com.br] Tasks: TOP => db:migrate => environment 
*** [err :: domain.com.br] (See full trace by running task with --trace) 
    command finished in 8091ms 

我已創建的數據庫已經在服務器上運行:

create database <databasename>; 

EDIT 添加遷移樣品:

class AddStatusTagsViewsToPosts < ActiveRecord::Migration 
    def change 
    change_table :posts do |p| 
     p.string :status, default: 'pending' 
     p.string :tags 
     p.integer :views 
    end 
    end 
end 

任何幫助?

+0

您可以發佈任何包含非標準代碼的遷移代碼嗎?按標準我的意思是'create_table','rename_column'等。 – 2012-08-03 03:08:53

回答

2

問題是我的Gemfile上列出了gem activeadmin,並且此Gem在config/routes.rb文件中添加了一條獨特的行。

解決方案是對activeadmin添加的行進行註釋,運行遷移,然後取消註釋。

+0

同樣的問題。其他原因。同樣的解 當我重新打開一箇舊項目(新位置,空白數據庫)時,我得到了同樣的PG:在我的一個模型上出現錯誤。 認爲這與我的祖先寶石有關。 這個評論讓我看看我的routes.rb,我通過在遷移我的db的同時暫時取消一些註釋(我把自己放在那裏)來解決我的問題。 – Tornskaden 2012-10-09 01:40:43

0

在之前的遷移中,您應該有create_table :posts,但看起來您還沒有。所以你試圖改變不存在的表格,Postgres抱怨的是什麼。