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

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

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

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

Heroku

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

Q&A

解決済

1回答

1448閲覧

HerokuのRailsアプリのDBのデータを入れ直したい

takamaru_ss

総合スコア6

Ruby on Rails 6

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

Heroku

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

0グッド

0クリップ

投稿2021/12/29 14:07

問題と経緯

Herokuにpushしたrailsアプリがクラッシュした状態(H10エラー)です。
原因はDB周りにあり、migrateをまだしていない時と似たような状態かと思います。

この状態になった原因は他のエラーを修正するためにローカルのpostgresqlをアンインストールして入れ直したりしたことだと思います。

Heroku上にはDBがあるもののアプリとDBのリンクができていないという状態かと思われます。

現在の状況

・Herokuにデータの入ったDBがある
・DBのバックアップは取っている
・ローカルではrails db:migrate:resetでDBを作り直し、バックアップのdumpファイルからデータを入れ直すことで解決できている
・migrateして作成したいテーブルは既存のもの(バックアップ)と全く同じ

試したこと

ローカルと同じようにheroku run rails db:migrate:resetでDBを作り直そうとしましたが、本番環境のデータを消していいのかと言われDBの作り直しができません。
もし実行していいのならDISABLE_DATABASE_ENVIRONMENT_CHECK=1をつけて叩けと言われるので

heroku run DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:drop db:create db:migrate

を試しましたが、drop操作に対して

Database 'df57n6e4e9pfvj' does not exist connection to server at "ec2-数字.compute-1.amazonaws.com" (23.22.191.232), port 5432 failed: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege. Couldn't create 'df57n6e4e9pfvj' database. Please check your configuration. rails aborted! ActiveRecord::NoDatabaseError: connection to server at "ec2-数字.compute-1.amazonaws.com" (23.22.191.232), port 5432 failed: FATAL: permission denied for database "postgres" DETAIL: User does not have CONNECT privilege.

とエラーが出るため実行されません。

ご教授いただきたい解決法

1.HerokuのDBの破壊をせずに既存のDBとアプリをリンクさせる方法
2.ローカルで実行したようにDBを作成し直してバックアップのデータを入れる方法

あまりDBの破壊はしたくないので1の方法がありましたらありがたいです。

補足情報(FW/ツールのバージョンなど)

アプリのpostgresqlのバージョン:13.5
HerokuのPG Version: 13.5

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

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

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

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

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

guest

回答1

0

自己解決

データを入れ直すという部分に関しては解決したため解決済みとします。

コマンドラインからDBのリセットができなかったためHerokuのインターフェイス上からリセットを行い、migrateでDBを作成した上でheroku pg:backups:restore b101 DATABASE_URL --app sushiを用いてバックアップデータを入れることができました。
コンソールからデータを取得することもできています。

残念ながらH10エラーは解決していないですが、ひとまずこの質問についてはクローズします。

投稿2021/12/30 15:01

takamaru_ss

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問