在Rails5控制台中Postgres

时间:2017-12-15 22:19:02

标签: ruby-on-rails postgresql

我打开了rails控制台并调用了DatabaseTable,但它失败了。 我跟着

psql: could not connect to server: No such file or directory (Mac OS X)

我试图打开postgres,我收到了错误。

$ psql

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我打电话给日志来观察发生的事情。

$ tail -f /usr/local/var/postgres/server.log

FATAL:  database "ror_development" does not exist
ERROR:  database "ror_development" already exists
STATEMENT:  CREATE DATABASE "ror_development" ENCODING = 'utf8'
ERROR:  database "ror_test" already exists
STATEMENT:  CREATE DATABASE "ror_test" ENCODING = 'utf8'
FATAL:  database "harem_backend_development" does not exist
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down

我无法理解我的sql发生了什么,以及如何解决它

2 个答案:

答案 0 :(得分:1)

从日志消息中可以看出你的Postgres没有运行(看起来像postgres进程被手动杀死了。)。尝试再次启动Postgres

pg_ctl -D /usr/local/var/postgres start
psql

答案 1 :(得分:1)

确保postgres在MacOS上运行。

如果你使用Homebrew安装postgres,你应该可以使用brew启动它:

brew services start postgresql

否则,您可以使用以下命令启动它:

pg_ctl -D /usr/local/var/postgres start

有关如何在MacOS中安装和使用postgres的详细信息,请阅读this guide

设置您的Rails数据库(Rails> = 5)

启动postgres后,您就可以设置Rails数据库了。

创建数据库:

 rails db:create

迁移数据库:

 rails db:migrate

为数据库播种:

 rails db:seed

创建数据库并为其设定种子:

 rails db:setup

最后,删除(删除)数据库:

 rails db:drop

对于Rails< 5,在上述命令中将rails替换为bundle exec rake

有关使用Rails设置和配置数据库的更多信息,请阅读Rails Guide