我正在向一台新的OSX机器添加一个应用程序(10.9.3,带有RVM和Ruby 2.1.1)。我正在使用postgresapp,就像在我的其他工作环境中一样,但是当我尝试迁移数据库时,我收到了一个错误。
我在迁移之前执行了rake db:drop
和rake 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建议的条件?
答案 0 :(得分:0)
我有同样的问题,我在开发和测试环境中都使用工厂女孩。我无法使用rake db:schema重置我的数据库:在删除并重新创建数据库后加载。
我可以确认从发展组中删除FactoriGirl解决了这个问题