私はHeroku上のRuby on Rails 3 Webアプリケーションに取り組んでいます。データベースを空にするにはどうすればよいですか。
SHARED_DATABASE_URL
を使用している場合、データベースを削除するには:
$ heroku pg:reset DATABASE_URL
次に、recreateデータベースに何も含まれていない場合:
$ heroku run rake db:migrate
シードデータをデータベースにpopulateするには:
$ heroku run rake db:seed
---または---
これを実行することにより、最後の2つ(migrate&seed)を1つのアクションに結合できます。
$ heroku run rake db:setup
Edit2014-04-18:rake db:setup
はRails 4では機能せず、Couldn't create database error
。
Edit2014-10-09:Railsでrake db:setup
を使用できます4. 4. Couldn't create database
エラー(データベースはheroku pg:reset
コマンドを使用して既に作成されているため)。ただし、エラーメッセージの後にデータベーススキーマとシードもロードします。
ほとんどすべてのrakeコマンドでこれを行うことができますが、例外があります。たとえば、db:reset
はheroku run rake
経由では機能しません。代わりにpg:reset
を使用する必要があります。
詳細については、Herokuのドキュメントを参照してください。
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
データベースを削除するには
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
データベースを再作成するには
$ heroku run rake db:migrate
データベースをシードするには
$ heroku run rake db:seed
**最終段階
$ heroku restart
現在、すなわち。 2017これを行う方法は次のとおりです。
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
今コマンドは
heroku pg:reset DATABASE_URL --confirm your_app_name
このようにして、リセットしたいアプリケーションのdbを指定できます。それならあなたは走ることができます
heroku run rake db:migrate
heroku run rake db:seed
または上記の両方のコマンドを実行する
heroku run rake db:setup
そして今あなたのアプリを再起動するための最後のステップ
heroku restart
Herokuのサポートに連絡したところ、最新のgemのバグであることが確認されました(heroku-2.26.2を使用しています)。
チャーリー - 私たちは 'heroku'宝石に関するこの問題を認識しており、それを修正しようとしています。
あなたがフォローしたいのであれば、これが問題です - 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をアンインストールしてコマンドを再実行するだけです。喜び!
完全な答えは、(multi-dbを持つユーザーの場合)です。
heroku pg:info - 出力する
===HEROKU_POSTGRESQL_RED< - これはDBです
プラン基本
ステータスがあります
heroku pg:HEROKU_POSTGRESQL_REDのリセット - app_nameの確認
で見つけられるより多くの情報: https://devcenter.heroku.com/articles/heroku-postgresql
今では英雄とは異なります。試してみてください。heroku pg:reset DATABASE --confirm
今日のコマンド
heroku pg:reset --db SHARED_DATABASE_URL
共有プランでは動作しません、使用して解決します
heroku pg:reset SHARED_DATABASE
今では彼らのWebインターフェースを介してデータベースをリセットすることも可能です。
dashboard.heroku.com に移動してアプリを選択すると、アドオンカテゴリの下にデータベースが表示されます。それをクリックすると、データベースをリセットできます。
heroku pg:psql
を使用してDBにログインし、以下のコマンドを入力してください。
drop schema public cascade;
create schema public;
英雄のバージョンを確認してください。次のように、私のバージョンを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
次にデータベースを作成し、それを単一のコマンドでシードします。
heroku run rake db:setup
今すぐアプリを再起動してみてください。
heroku restart
heroku open
これは私のために働いたものです。
1.明確なデシベル。
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
あなたがHerokuのウェブサイトを使うことを好む場合:
あなたのPostgreSQLデータベースをリセットしてそれをバックアップしたいと仮定すると、
heroku apps
アプリケーションをHerokuにリストする。現在のアプリケーションの名前(application_name
)を探します。それから走りなさい
heroku config | grep POSTGRESQL
データベースの名前を取得します。例としては
HEROKU_POSTGRESQL_WHITE_URL
最後に、application_name
とdatabase_url
が与えられたら、あなたは実行するべきです
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
コンソールからログインしている場合は、最新のheroku toolbeltで作業します。
heroku pg:reset - データベース名の確認
あなたにとって最適な解決策は
heroku pg:reset -r heroku --confirm your_heroku_app_name
- あなたのheroku_app_nameを確認してください
必須ではありませんが、端末は常にそのコマンドを実行するように要求します。
そのコマンドの後、あなたは構造ともののない純粋なdbになるでしょう、その後あなたは実行することができます
heroku run rake db:schema:load -r heroku
または
heroku run rake db:migrate -r heroku
私はいつもこれをワンライナーの 'heroku pg:reset DATABASE'でやっています。