38

我已经重新安装了 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:allrake 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”的表)。

在尝试完全重新安装/刷新我的数据库时,有谁知道如何解决此错误?

4

4 回答 4

75

我遇到了类似的问题。我检查了不同的网站并尝试了他们的建议,但没有奏效。然后我尝试了你的建议。 它对我有用rake db:create:allrake db:migrate谢谢!

于 2013-12-17T19:21:32.260 回答
4

您需要先创建数据库。运行 rake db:create:all

还要确保为 postgres 正确设置了 yml 文件。

于 2013-10-29T23:17:12.670 回答
2

db:create:alldb:migrate没有先为我工作。我将数据库名称从文件更改development.pg为:developmentpgmyapp/config/database.yml

数据库:db/developmentpg

然后rake db:create:alland rake db:migrate,它对我有用。

谢谢

于 2015-05-09T13:42:46.643 回答
0

我尝试运行 rake db:create:all,但没有成功。但是,运行 bundle exec rake db:create:all 对我有用。

希望这可以帮助!

于 2017-01-04T10:51:11.890 回答