Jawaban:
Untuk menjatuhkan basis data, jika Anda menggunakan SHARED_DATABASE_URL
:
$ heroku pg:reset DATABASE_URL
Sekarang untuk membuat ulang basis data tanpa apa-apa di dalamnya:
$ heroku run rake db:migrate
Untuk mengisi basis data dengan data seed Anda:
$ heroku run rake db:seed
---ATAU---
Anda dapat menggabungkan dua yang terakhir ( migrasi & benih ) menjadi satu tindakan dengan menjalankan ini:
$ heroku run rake db:setup
Sunting 2014-04-18: rake db:setup
tidak berfungsi dengan Rails 4, gagal dengan a Couldn't create database error
.
Sunting 2014-10-09: Anda dapat menggunakan rake db:setup
dengan Rails 4. Itu memberi Anda Couldn't create database
kesalahan (karena database sudah dibuat menggunakan heroku pg:reset
perintah). Tetapi juga memuat skema database Anda dan benih Anda setelah pesan kesalahan.
Anda dapat melakukan ini dengan hampir semua perintah rake, tetapi ada beberapa pengecualian. Misalnya, db:reset
tidak berfungsi melalui heroku run rake
. Anda harus menggunakannya pg:reset
sebagai gantinya.
Informasi lebih lanjut dapat ditemukan di dokumentasi Heroku:
SHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
heroku pg:reset DATABASE
heroku pg:reset DATABASE --confirm appname
Heroku telah menghentikan --db
opsi sekarang, jadi sekarang gunakan:
heroku pg:reset DATABASE_URL --confirm {the name of your app}
Agak membingungkan karena Anda menggunakan teks literal SHARED_DATABASE
tetapi di mana saya telah menulis {the name of your app}
menggantikan nama aplikasi Anda. Misalnya, jika aplikasi Anda disebut my_great_app maka Anda menggunakan:
heroku pg:reset DATABASE_URL --confirm my_great_app
SHARED_DATABASE
Untuk menjatuhkan basis data:
$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP
Untuk membuat ulang basis data:
$ heroku run rake db:migrate
Untuk menyemai basis data:
$ heroku run rake db:seed
**Langkah terakhir
$ heroku restart
heroku run rake db:migrate
tidak lagi membuat ulang basis data
Arus, yaitu. 2017 cara untuk melakukan ini adalah:
heroku pg:reset DATABASE
https://devcenter.heroku.com/articles/heroku-postgresql#pg-reset
heroku run rake db:migrate db:seed
Sekarang perintahnya adalah
heroku pg:reset DATABASE_URL --confirm your_app_name
dengan cara ini Anda dapat menentukan db aplikasi yang ingin Anda atur ulang. Maka Anda bisa lari
heroku run rake db:migrate
heroku run rake db:seed
atau mengarahkan untuk kedua perintah di atas
heroku run rake db:setup
Dan sekarang langkah terakhir untuk me-restart aplikasi Anda
heroku restart
Saya menghubungi dukungan Heroku, dan mereka mengonfirmasi bahwa itu adalah bug dengan permata terbaru (saya menggunakan heroku-2.26.2)
Charlie - kami menyadari masalah ini dengan permata 'heroku' dan sedang berupaya memperbaikinya.
Inilah masalahnya jika Anda ingin mengikuti - https://github.com/heroku/heroku/issues/356
Menurunkan versi ke permata 'heroku' sebelumnya akan membantu. Saya telah menggunakan v2.25.0 untuk sebagian besar hari ini tanpa masalah.
Turunkan peringkat dengan perintah berikut:
gem uninstall heroku
gem install heroku --version 2.25.0
Jika Anda sudah menginstal banyak permata, Anda mungkin dihadapkan pada:
Select gem to uninstall: 1. heroku-2.25.0 2. heroku-2.26.2 3. All versions
Hapus instalan # 2 dan jalankan kembali perintah. Kegembiraan!
The lengkap Jawabannya adalah (untuk pengguna dengan multi-db):
heroku pg: info - yang keluaran
=== HEROKU_POSTGRESQL_RED <- ini adalah Status
Dasar DB Plan yang
tersedia
heroku pg: reset HEROKU_POSTGRESQL_RED --confirm app_name
Informasi lebih lanjut ditemukan di: https://devcenter.heroku.com/articles/heroku-postgresql
Sekarang juga dimungkinkan untuk mereset basis data melalui antarmuka web mereka.
Pergi ke dashboard.heroku.com pilih aplikasi Anda dan kemudian Anda akan menemukan database di bawah kategori add-ons, klik di atasnya dan kemudian Anda dapat mengatur ulang database.
Periksa versi heroku Anda. Saya baru saja memperbarui tambang ke 2.29.0, sebagai berikut:
heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3
Sekarang Anda dapat menjalankan:
heroku pg:reset DATABASE --confirm YOUR_APP_NAME
Kemudian buat database Anda dan seed itu dalam satu perintah:
heroku run rake db:setup
Sekarang restart dan coba aplikasi Anda:
heroku restart
heroku open
Inilah yang bekerja untuk saya.
1.clear db.
heroku pg:reset --app YOUR_APP
Setelah menjalankan itu, Anda harus mengetikkan nama aplikasi lagi untuk mengonfirmasi.
2.migrate db untuk menciptakan kembali.
heroku run rake db:migrate --app YOUR_APP
3. tambahkan data seed ke db.
heroku run rake db:seed --app YOUR_APP
Jika Anda lebih suka menggunakan situs Web Heroku:
Dengan asumsi Anda ingin mengatur ulang database PostgreSQL Anda dan mengaturnya kembali, gunakan:
heroku apps
untuk mendaftar aplikasi Anda di Heroku. Temukan nama aplikasi Anda saat ini ( application_name
). Lalu lari
heroku config | grep POSTGRESQL
untuk mendapatkan nama basis data Anda. Contohnya bisa
HEROKU_POSTGRESQL_WHITE_URL
Akhirnya, diberikan application_name
dan database_url
, Anda harus lari
heroku pg:reset `database_url` --confirm `application_name`
heroku run rake db:migrate
heroku restart
Jika Anda masuk dari konsol, ini akan melakukan pekerjaan di heroku toolbelt terbaru,
heroku pg: reset --confirm-nama basis data
Saya selalu melakukan ini dengan one-liner 'heroku pg: reset DATABASE'.
Solusi terbaik untuk masalah Anda adalah
heroku pg:reset -r heroku --confirm your_heroku_app_name
--confirmasikan your_heroku_app_name Anda
tidak diperlukan, tetapi terminal selalu meminta saya melakukan perintah itu.
Setelah perintah itu Anda akan memiliki db murni, tanpa struktur dan barang-barang, setelah itu Anda dapat menjalankan
heroku run rake db:schema:load -r heroku
atau
heroku run rake db:migrate -r heroku