0

我正在尝试从 SQLite 迁移到 Postgres,以便应用程序在 Heroku 上正确部署。但我没有任何运气。

rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?

我是 Postgres 的新手,但我尝试了所有遇到的建议,但都没有运气。这是我的 database.yaml 文件:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  timeout: 5000
  host: localhost
  username: postgres 
  password: postgres

development:
  <<: *default
  database: app_development

test:
  <<: *default
  database: app_test

production:
  <<: *default
  database: app_production

我相信我在 Postgres 列表中正确设置了空数据库,但运行 rake db:migrate 失败。

任何帮助是极大的赞赏。

4

1 回答 1

0

如果您还没有运行:

sudo service postgresql start

在cloud9终端

然后切换到您的 postgres 用户并验证您是否创建了您在 database.yaml 中指定的数据库

sudo su - postgres
psql

然后在 psql 提示符下输入以下命令列出所有可用的数据库

\list

如果您需要创建一个数据库,您可以通过键入

CREATE DATABASE "database_name";

要为 postgres 用户设置密码,请使用

\password postgres

完成上述步骤后,确保您的 database.yaml 文件具有正确的数据库名称、用户名和密码,然后尝试运行

rake db:migrate

如果数据库设置正确并且配置了 database.yaml 文件

尝试重新启动 postgres 服务器

sudo /etc/init.d/postgresql restart

然后rake db:migrate再次运行

来源

与设置 PostgresSQL 相关的Cloud9文档

Cloud9论坛帖子与在 Rails 应用程序中设置 PostgreSQL 相关

与更改 psql 密码相关的Stackoverflow帖子

与重启 PostgreSQL 服务器相关的Stackoverflow帖子

一种方法我设法将我已经开始使用 SQLite 开发的应用程序推送到 heroku 的另一种方法是将 SQLite gem 移动到我的 Gemfile 中的开发组中,并添加一个具有 heroku 依赖项的生产组:

group :production do
  gem 'rails12_factor'
  gem 'pg'
end

然后在没有生产组的开发包中安装:

bundle install --without production

当我推送到heroku时进行正常的捆绑安装

于 2017-01-26T22:23:57.353 回答