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抱怨的是什么。