本地机器上的Postgres:rake db:migrate会产生错误

时间:2014-07-03 21:40:21

标签: postgresql ruby-on-rails-4 rails-migrations

我正在向一台新的OSX机器添加一个应用程序(10.9.3,带有RVM和Ruby 2.1.1)。我正在使用postgresapp,就像在我的其他工作环境中一样,但是当我尝试迁移数据库时,我收到了一个错误。

我在迁移之前执行了rake db:droprake db:create(正确创建了数据库)。

我无法完成第一次迁移,总是收到以下错误:

rake aborted!
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "templates" does not exist
LINE 5:                WHERE a.attrelid = '"templates"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
                FROM pg_attribute a LEFT JOIN pg_attrdef d
                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
               WHERE a.attrelid = '"templates"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum

全部要点:https://gist.github.com/andreimoment/f3a815099b5e3834338e#file-stacktrace

这是第一次迁移:

class CreateSites < ActiveRecord::Migration
  def change
    create_table :sites do |t|
      t.string :name
      t.string :url
      t.string :status
      t.integer :default_page_id
      t.belongs_to :template
      t.timestamps
    end
  end
end

database.yml中:

development:
  adapter: postgresql
  encoding: unicode
  database: myapp_development
  pool: 5
  timeout: 5000
  username: myuser
  password:

myuser有超级用户,创建db,在postgresql中创建角色权限

我还使用database = postgresql创建了一个新的rails应用程序,其迁移工作正常。

有什么建议吗?

更新:我注释掉了FactoryGirl的宝石,运行了捆绑更新,并且迁移完成了。

这可能是什么原因? FactoryGirl宝石是否会尝试初始化记录并可能导致Mu建议的条件?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我在开发和测试环境中都使用工厂女孩。我无法使用rake db:schema重置我的数据库:在删除并重新创建数据库后加载。

我可以确认从发展组中删除FactoriGirl解决了这个问题