Postgres on Rails 致命:数据库不存在
Posted
技术标签:
【中文标题】Postgres on Rails 致命:数据库不存在【英文标题】:Postgres on Rails FATAL: database does not exist 【发布时间】: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
有帮助吗?
您是否尝试在任何模型中访问类级别的数据库?
【参考方案1】:
db:create:all
和 db:migrate
首先对我不起作用。
我在myapp/config/database.yml
文件中将我的数据库名称从development.pg
更改为developmentpg
:
数据库:db/developmentpg
然后是 rake db:create:all
和 rake db:migrate
,它对我有用。
谢谢
【讨论】:
【参考方案2】:我尝试运行 rake db:create:all,但没有成功。 然而,运行 bundle exec rake db:create:all 为我工作。
希望这会有所帮助!
【讨论】:
【参考方案3】:我遇到了类似的问题。
我检查了不同的网站并尝试了他们的建议但没有奏效。
然后我尝试了你的建议。
rake db:create:all
和 rake db:migrate
它对我有用。谢谢!
【讨论】:
这对我不起作用,直到我添加了 bundle exec。bundle exec rake db:create:all
。谢谢!【参考方案4】:
您需要先创建数据库。运行 rake db:create:all
还要确保为 postgres 正确设置了 yml 文件。
【讨论】:
以上是关于Postgres on Rails 致命:数据库不存在的主要内容,如果未能解决你的问题,请参考以下文章
你好 postgres 数据库连接错误 Ruby on rails
Ruby On Rails Heroku Postgres数据库SSL连接
使用 ruby on rails 将布尔值保存到 postgres 数据库
在Macbook上创建的Postgres DB的Ruby on Rails项目需要在Windows 10上访问
Postgres 13.2 on rails 5.2.4.1: ActiveRecord::NoDatabaseError: FATAL: database * does not exist on r