Herokuデータベースを空にする方法


355

HerokuのRuby on Rails 3 Webアプリケーションに取り組んでいます。データベースを空にするにはどうすればよいですか?

回答:


689

データベースを削除するには、使用している場合SHARED_DATABASE_URL

$ heroku pg:reset DATABASE_URL

次に、何も含まれていないデータベースを再作成します。

$ heroku run rake db:migrate  

データベースにシードデータを入力するには:

$ heroku run rake db:seed

---または---

これを実行することで、最後の2つ(migrate&seed)を1つのアクションに組み合わせることができます。

$ heroku run rake db:setup

2014-04-18を編集rake db:setupRails 4では機能せず、Couldn't create database error

Edit 2014-10-09:rake db:setupRails 4で使用できます。Couldn't create databaseエラーが発生します(データベースはheroku pg:resetコマンドを使用して既に作成されているため)。ただし、エラーメッセージの後にデータベーススキーマとシードも読み込まれます。

ほぼすべてのrakeコマンドでこれを行うことができますが、例外があります。たとえば、ではdb:reset機能しませんheroku run rake。あなたが使用する必要がありますpg:reset代わり。

詳細については、Herokuのドキュメントを参照してください。

Rakeコマンドの実行

Postgres DBをリセットする


21
ありがとうございました。実際、「heroku pg:reset --db SHARED_DATABASE_URL」がトリックを実行しました。しかし、あなたは私を正しい方向に導いてくれました。
ジェイゴッズ、2011年

5
@JayGodse Herokuは今言うSHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
Phil

6
実際には、schema.rbをチェックインし、次を使用する必要があります。rake db:schema:load
Amala

18
彼らは今それを再び変えましたheroku pg:reset DATABASE
ハリス・クラジナ2013年

8
数秒の時間を節約するには、次を使用しますheroku pg:reset DATABASE --confirm appname
GangstaGraham 2013年

97

Herokuはこの--dbオプションを非推奨にしたので、次を使用します。

heroku pg:reset DATABASE_URL --confirm {the name of your app}

リテラルテキストを使用するので少し混乱しますSHARED_DATABASEが、私が書いた場所は{the name of your app}アプリの名前に置き換えます。たとえば、アプリの名前がmy_great_appの場合、次を使用します。

heroku pg:reset DATABASE_URL --confirm my_great_app

3
あなただけの後に(を含む)ビットをスキップして貼り付けた場合- Herokuのでは...と入力するのかを教えてくれます
baash05

herokuでpostgresデータベースの名前を取得するための便利なコマンド:heroku config | grep HEROKU_POSTGRESQL
zero_cool

「リテラルテキストSHARED_DATABASEを使用します」?コードサンプルでDATABASE_URLを使用しています。どういう意味ですか?
Michael Durrant 2014年

いいえ。私は他の答えの言葉の使用に言及していましたSHARED_DATABASE
デイブサグ

65

データベースを削除するには:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

データベースを再作成するには:

$ heroku run rake db:migrate

データベースをシードするには:

$ heroku run rake db:seed

**最終段階

$ heroku restart

4
私は他のどれよりもこの答えを好みます。これはHerokuでの私のシナリオでは完全に機能します。
ジョナサン

herokuが最近これらのコマンドの構文を変更したためかもしれません。
ジョージヤコブ

1
'heroku restart'は、私が見逃していた重要な要素の1つでした。ありがとう。
Jeremy Nikolai 14

heroku run rake db:migrateデータベースを再作成しなくなりました
Rots '30 / 09/30


13

今のコマンドは

heroku pg:reset DATABASE_URL --confirm your_app_name

この方法で、リセットするアプリのデータベースを指定できます。その後、実行できます

heroku run rake db:migrate 
heroku run rake db:seed 

または上記の両方のコマンドに直接

heroku run rake db:setup 

そして今、あなたのアプリを再起動する最後のステップ

heroku restart

1
再起動は必要ないかもしれませんが、言及しておくと良いでしょう。
Francisco Quintero 2018年

11

Herokuのサポートに問い合わせたところ、最新のgemのバグであることが確認されました(heroku-2.26.2を使用しています)。

チャーリー-「heroku」gemのこの問題を認識しており、修正に取り組んでいます。

あなたがフォローしたい場合の問題はここにあります- とおりです-https://github.com/heroku/heroku/issues/356

以前のバージョンの「heroku」gemへのダウングレードが役立つはずです。今日はほとんど問題なくv2.25.0を使用しています。

次のコマンドを使用してダウングレードします。

gem uninstall heroku

gem install heroku --version 2.25.0

すでに複数のgemがインストールされている場合は、次のメッセージが表示されることがあります。

Select gem to uninstall:
 1. heroku-2.25.0
 2. heroku-2.26.2
 3. All versions

#2をアンインストールして、コマンドを再実行してください。喜び!


1
すべてのgemは非推奨になりました。それらを削除して、Herokuツールベルトをインストールする必要があります。toolbelt.heroku.com
Ghoti


8

今ではherokuとは異なります。試してください:heroku pg:reset DATABASE-確認


一部のアプリでは、引き続きSHARED_DATABASEを使用する必要があります
tfwright

7

今日のコマンド

heroku pg:reset --db SHARED_DATABASE_URL

共有プランでは機能しない、私は使用して解決します

heroku pg:reset SHARED_DATABASE

6

を使用してDBにログインし heroku pg:psql、次のコマンドを入力します。

drop schema public cascade;
create schema public;

6

これで、Webインターフェースからデータベースをリセットすることもできます。

dashboard.heroku.comに移動してアプリを選択すると、アドオンカテゴリの下にデータベースが表示されます。それをクリックして、データベースをリセットできます。

Herokuデータベースをリセット


5

Herokuのバージョンを確認してください。私は次のように鉱山を2.29.0に更新しました:

heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3

これで実行できます:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

次に、データベースを作成し、1つのコマンドでシードします。

heroku run rake db:setup

今すぐ再起動してアプリを試してください:

heroku restart
heroku open

4

これは私のために働いたものです。

1. clear db。

heroku pg:reset --app YOUR_APP

実行後、確認のためにアプリ名をもう一度入力する必要があります。

2. dbを移行して再作成します。

heroku run rake db:migrate  --app YOUR_APP

3.シードデータをdbに追加します。

heroku run rake db:seed --app YOUR_APP

3

Heroku Webサイトを使用する場合:

  1. https://postgres.heroku.com/databasesに移動します
  2. リセットするデータベースを選択します
  3. 右上の設定ボタンをクリックします
  4. 以下に示すように、「データベースのリセット」をクリックします。
  5. 「RESET」と入力し、[ok]を押します

Herokuデータベースのリセット


2

PostgreSQLデータベースをリセットして再設定する場合は、次のコマンドを使用します。

heroku apps

Herokuでアプリケーションを一覧表示します。現在のアプリケーションの名前を見つけます(application_name)。次に実行します

heroku config | grep POSTGRESQL

データベースの名前を取得します。例は

HEROKU_POSTGRESQL_WHITE_URL

最後に、与えられたapplication_namedatabase_url、あなたが実行する必要があります

heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart

1

コンソールからログインしている場合は、最新のherokuツールベルトでジョブが実行されます。

heroku pg:reset-データベース名の確認



0

あなたの問題に最適な解決策は

heroku pg:reset -r heroku  --confirm your_heroku_app_name

--your_heroku_app_nameを確認します

必須ではありませんが、ターミナルは常にそのコマンドを実行するように要求します。

そのコマンドの後、あなたは実行することができます構造とものなしで純粋なdbを持っているでしょう

heroku run rake db:schema:load -r heroku

または

heroku run rake db:migrate -r heroku
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.