質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

0回答

1308閲覧

Herokuにデプロイできない

Eita

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2020/06/30 13:46

<前提・実現したいこと>
Herokuにデプロイしたい。

発生している問題・エラーメッセージ

現在railsでアプリを作成しています。
これまでDBにmysqlを使用し、herokuにもデプロイできていたのですが、
mysql周りでエラーが多発したので、本番環境DBをpostgresに移行したところ、デプロイできません。
具体的にはheroku run rails db:migrateを実行すると、

error

1PG::ConnectionBad: could not connect to server: Connection timed out 2 Is the server running on host "YYYYY.cleardb.net" (11.11.111.111) and accepting 3 TCP/IP connections on port 5432? 4could not connect to server: Connection timed out 5 Is the server running on host "YYYYY 6.cleardb.net" (2.222.22.22) and accepting 7 TCP/IP connections on port 5432?

というエラーメッセージが出てしまいます。

その他、出ているエラーとしてはpsqlコマンドを打つと

error

1psql: error: could not connect to server: FATAL: database "xxxxxx" does not exist

herokulogs

1heroku[router]: at=error code=H12 desc="Request timeout"

などです

試したこと

・gemfileのproductionに'pg'追加変更
・database.ymlにadapter: postgresqlを追加
・postgresl.confを編集しlisten_addresses = '*'に変更

恐らく、mysqlからpostgresに変更する際に設定すべきことをしそこねているのかと思いますが、今の私では解決まで至らず、大変詰まっております。
何卒お力添え頂けると幸いです。
よろしくお願いいたします。

以下はそれぞれのコマンドを打った際の結果です。一部文字を変えています。

psql -l

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+---------+----------+---------+-------+--------------------- postgres | xxxxxxx | UTF8 | C | C | template0 | xxxxxxx | UTF8 | C | C | =c/xxxxxxx + | | | | | xxxxxxx=CTc/xxxxxxx template1 | xxxxxxx | UTF8 | C | C | =c/xxxxxxx + | | | | | xxxxxxx=CTc/xxxxxxx

heroku -config

CLEARDB_DATABASE_URL: postgres://b8e:63c@YYYYY.cleardb.net/heroku_fca48d31?reconnect=true DATABASE_URL: postgres://b8e:63c@YYYYY.cleardb.net/heroku_fca48d31?reconnect=true DB_HOSTNAME: us-01.cleardb.net DB_NAME: heroku_fca DB_PASSWORD: 63c DB_PORT: 3306 DB_USERNAME: b8ed LANG: en_US.UTF-8 RACK_ENV: production RAILS_ENV: production RAILS_LOG_TO_STDOUT: enabled RAILS_SERVE_STATIC_FILES: enabled SECRET_KEY_BASE: ~~~~

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/06/30 22:20

heroku -config の内容がちゃんと PostgreSQL 用になってない気がしますね。 また、psql コマンドで接続してるのはどこの PostgreSQL ですか?
Eita

2020/07/01 00:12 編集

コメントありがとうございます! そうなんですね。。。 意味もわからずpsqlコマンドを打っていたのですが、 頂いたコメントをヒントにpsqlコマンドを打ったところ以下のようになりました。 `psql -h localhost -p 5432 -d postgres` psql (12.3) Type "help" for help. postgres=#
hoshi-takanori

2020/07/01 00:37

それはご自分のパソコンでローカルに PostgreSQL を動かして、そこに接続してるってことになります。 開発中はローカルの PostgreSQL で動作確認して、動いたら heroku で動かすことになるでしょうね。 また、DATABASE_URL に cleardb.net とありますが、これは MySQL 用のホスト名で、PostgreSQL の場合は amazonaws.com になるはず。ってか、もしかして DATABASE_URL を自分で設定してませんか? heroku 側で設定してくれる (そしてたまに勝手に変更される) ものですけど…。
Eita

2020/07/01 03:44

そうなんですね。 勉強不足でした。 今はローカルをsqlite3、本番環境をpostgresqlに設定しています。 ご指摘の通りDATABASE_URLは自分で設定しました。。。 mysql://〜という風になっていたからです。 〜amazonaws.comといえば、heroku config内に以下の記述があるのですが、何かヒントになりうるでしょうか? HEROKU_POSTGRESQL_BROWN_URL: postgres://sfnijlmvbk:b8cf3@ec1-11-111-111-84.compute-1.amazonaws.com:5432/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問