我重新安装了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以及迁移文件夹中的所有文件,以及我能想到的任何其他内容。但是,引用“帖子”的错误让我觉得我的先前数据库(有一个名为“帖子”的表)仍有一些旧的引用。
在尝试完全重新安装/刷新我的数据库时,是否有人知道如何解决此错误?
答案 0 :(得分:64)
我遇到了类似的问题。
我检查了不同的网站,并尝试了他们的建议,但没有工作。
然后我尝试了你的建议。
rake db:create:all
和 rake db:migrate
对我有用。谢谢!
答案 1 :(得分:4)
您需要先创建数据库。运行rake db:create:all
还要确保为postgres正确设置了yml文件。
答案 2 :(得分:2)
db:create:all
和db:migrate
首先不适合我。
我在development.pg
文件中将我的数据库名称从developmentpg
更改为myapp/config/database.yml
:
数据库:db / developmentpg
然后 rake db:create:all
和 rake db:migrate
,它对我有用。
谢谢
答案 3 :(得分:0)
我尝试运行rake db:create:all,它没有用。 但是,跑步 bundle exec rake db:create:all 为我工作。
希望这有帮助!