【发布时间】:2013-07-29 19:16:10
【问题描述】:
我重新安装了 Postgres (9.2.4),但在使用 Rails 3.2.11 进行设置时遇到了麻烦。我做到了:
brew install postgresql
initdb /usr/local/var/postgres
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
所以现在我有
$ psql --version
psql (PostgreSQL) 9.2.4
$ which psql
/usr/local/bin/psql
我的 database.yml 文件看起来像
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: Tyler
password:
host: localhost
port: 5432
当我运行rake db:create:all 然后rake db:migrate 我得到错误:
PG::Error: ERROR: relation "posts" does not exist
LINE 5: WHERE a.attrelid = '"posts"'::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 = '"posts"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
我已尝试清除与过去的数据库、迁移等相关的所有内容。
我已经删除了 schema.rb、seed.rb 和迁移文件夹中的所有文件,以及我能想到的任何其他内容。但是提到“posts”的错误让我觉得我之前的数据库(有一个名为“posts”的表)仍然有一些旧的引用。
在尝试完全重新安装/刷新我的数据库时,有人知道如何解决此错误吗?
【问题讨论】:
-
这听起来像您的迁移文件不一致。你确定你在引用它之前创建了
posts? -
我尝试只将第一个迁移文件放在迁移文件夹中(它不会在任何地方引用帖子),但我仍然遇到问题。我还尝试删除所有迁移文件,但仍然收到消息...
-
rake db:drop:all有帮助吗? -
您是否尝试在任何模型中访问类级别的数据库?
标签: ruby-on-rails ruby-on-rails-3 postgresql activerecord database-migration