Heroku veritabanı nasıl boşaltılır


355

Heroku'da Ruby on Rails 3 web uygulaması üzerinde çalışıyorum. Veritabanını nasıl boşaltırım?

Yanıtlar:


689

Veritabanını bırakmak için kullanıyorsanız SHARED_DATABASE_URL:

$ heroku pg:reset DATABASE_URL

Şimdi veritabanını hiçbir şey olmadan yeniden oluşturmak için:

$ heroku run rake db:migrate  

To doldurmak için tohum verileri ile veritabanı:

$ heroku run rake db:seed

---VEYA---

Bunu gerçekleştirerek son ikisini ( taşı ve tohumla ) tek bir eylemde birleştirebilirsiniz :

$ heroku run rake db:setup

Edit 2014-04-18: rake db:setupRails 4 ile çalışmıyor, bir ile başarısız Couldn't create database error.

Edit 2014-10-09: rake db:setupRails 4 ile kullanabilirsiniz . Bu size bir Couldn't create databasehata veriyor (çünkü veritabanı zaten heroku pg:resetkomut kullanılarak yaratılmıştı ). Ancak hata mesajından sonra veritabanı şemanızı ve tohumlarınızı da yükler.

Bunu hemen hemen tüm komisyon komutlarıyla yapabilirsiniz, ancak istisnalar vardır. Örneğin, üzerinden db:resetçalışmaz heroku run rake. Bunun pg:resetyerine kullanmak zorundasınız .

Daha fazla bilgi Heroku'nun belgelerinde bulunabilir:

Komisyon Komutlarını Çalıştırma

Postgres Veritabanını Sıfırla


21
Teşekkür ederim. Aslında, "heroku pg: reset --db SHARED_DATABASE_URL" hile yaptı. Ama beni doğru yöne götürdün.
Jay Godse

5
@JayGodse Heroku şimdi diyorSHARED_DATABASE_URL is deprecated, please use SHARED_DATABASE
Phil

6
Aslında schema.rb'nizi kontrol ediyor olmalısınız ve şunu kullanmalısınız: tırmık db: şema: yük
Amala

18
Şimdi tekrar değiştirdilerheroku pg:reset DATABASE
Haris Krajina

8
Birkaç saniye tasarruf etmek için şunu kullanın:heroku pg:reset DATABASE --confirm appname
GangstaGraham

97

Heroku --dbşimdi seçeneği kullanımdan kaldırmıştır , bu yüzden şimdi kullanın:

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

Kelimenin tam metnini kullandığınız için biraz kafa karıştırıcıdır, SHARED_DATABASEancak yazdığım yerde {the name of your app}uygulamanızın adını değiştirir. Örneğin, uygulamanız my_great_app olarak adlandırılırsa şunu kullanırsınız:

heroku pg:reset DATABASE_URL --confirm my_great_app

3
sadece yapıştırıp biraz sonra atlayın (ve dahil) - heroku size ne yazacağınızı söyleyecektir ..
baash05

heroku üzerinde postgres veritabanınızın adını almak için kullanışlı komut: heroku config | grep HEROKU_POSTGRESQL
zero_cool

"SHARED_DATABASE sabit metnini mi kullanıyorsunuz?" Kod örneklerinizde DATABASE_URL kullanıyorsunuz. Bunu mu demek istiyorsun?
Michael Durrant

Hayır! Diğer cevabın şu kelimeleri kullanmasından bahsediyordumSHARED_DATABASE
Dave Sag

65

Veritabanını bırakmak için:

$ heroku pg:reset SHARED_DATABASE --confirm NAME_OF_THE_APP

Veritabanını yeniden oluşturmak için:

$ heroku run rake db:migrate

Veritabanını tohumlamak için:

$ heroku run rake db:seed

**Son adım

$ heroku restart

4
Bu cevabı başkalarına tercih ederim. Bu Heroku senaryomda mükemmel çalışıyor, çok düşük oy kullanıldığına inanıyorum!
Jonathan

Bunun nedeni, heroku'nun son zamanlarda bu komutların sözdizimini değiştirmesi olabilir.
George Yacoub

1
'heroku restart' kaçırdığım tek anahtar parça oldu. Teşekkürler.
Jeremy Nikolai

heroku run rake db:migrateartık veritabanını yeniden oluşturmuyor
Rots


13

Şimdi komut

heroku pg:reset DATABASE_URL --confirm your_app_name

bu şekilde hangi uygulamanın db'sini sıfırlamak istediğinizi belirleyebilirsiniz. Sonra koşabilirsin

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

veya yukarıdaki her iki komut için doğrudan

heroku run rake db:setup 

Ve şimdi uygulamanızı yeniden başlatmak için son adım

heroku restart

1
Yeniden başlatmak gerekli olmayabilir, ancak iyi bir noktaya değinmek gerekir.
Francisco Quintero

11

Heroku desteğiyle iletişime geçtim ve bunun en yeni mücevherle ilgili bir hata olduğunu doğruladılar (heroku-2.26.2 kullanıyorum)

Charlie - 'heroku' gemiyle bu sorunun farkındayız ve düzeltmek için çalışıyoruz.

Takip etmeyi önemsiyorsanız sorun şu şekildedir - https://github.com/heroku/heroku/issues/356

'Heroku' geminin önceki bir sürümüne geçmek yardımcı olacaktır. V2.25.0'ı günümüzün çoğunda sorunsuz olarak kullanıyorum.

Aşağıdaki komutlarla eski sürüme geçin:

gem uninstall heroku

gem install heroku --version 2.25.0

Zaten kurulu birden fazla mücevher varsa, size aşağıdakiler sunulabilir:

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

Sadece # 2'yi kaldırın ve komutu yeniden çalıştırın. Sevinç!


1
Tüm taşlar şimdi kullanımdan kaldırıldı, onlardan kurtulmanız ve Heroku araç kemerini takmanız gerekiyor. toolbelt.heroku.com
Ghoti


8

Şimdi heroku ile farklı. Dene: Heroku PG: Reset DATABASE --Onayla


Bazı uygulamalar için hala SHARED_DATABASE
tfwright

7

Bugün komut

heroku pg:reset --db SHARED_DATABASE_URL

paylaşılan planlar için çalışmıyor, ben kullanarak çözmek

heroku pg:reset SHARED_DATABASE

6

Kullanarak DB'nize giriş yapın heroku pg:psqlve aşağıdaki komutları yazın:

drop schema public cascade;
create schema public;

6

Artık veritabanını web arayüzleri üzerinden sıfırlamak da mümkün.

Dashboard.heroku.com adresine gidin ve uygulamanızı seçin, ardından veritabanını eklentiler kategorisinde bulacaksınız, üzerine tıklayın ve ardından veritabanını sıfırlayabilirsiniz.

Heroku Veritabanını Sıfırla


5

Heroku sürümünüzü kontrol edin. Ben sadece benim gibi 2.29.0 güncelledim:

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

Şimdi çalıştırabilirsiniz:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME

Ardından veritabanınızı oluşturun ve tek bir komutla tohumlayın:

heroku run rake db:setup

Şimdi yeniden başlatın ve uygulamanızı deneyin:

heroku restart
heroku open

4

Bu benim için işe yaradı.

1. açık db.

heroku pg:reset --app YOUR_APP

Bunu çalıştırdıktan sonra onaylamak için uygulama adınızı tekrar yazmanız gerekir.

2. db'yi yeniden oluşturun.

heroku run rake db:migrate  --app YOUR_APP

3. db'ye tohum verileri ekleyin.

heroku run rake db:seed --app YOUR_APP

3

Heroku Web sitesini kullanmayı tercih ederseniz:

  1. Https://postgres.heroku.com/databases adresine gidin.
  2. Sıfırlamak istediğiniz veritabanını seçin
  3. Sağ üst köşedeki ayarlar düğmesini tıklayın
  4. Aşağıda gösterildiği gibi "Veritabanını Sıfırla" yı tıklayın:
  5. "SIFIRLA" yazın ve Tamam'a basın

heroku veritabanı sıfırlama


2

PostgreSQL veritabanınızı sıfırlamak ve yedeklemek istediğinizi varsayarsak, şunu kullanın:

heroku apps

Heroku'daki uygulamalarınızı listelemek için. Geçerli uygulamanızın adını ( application_name) bulun . O zaman koş

heroku config | grep POSTGRESQL

veritabanlarınızın adını almak için. Bir örnek olabilir

HEROKU_POSTGRESQL_WHITE_URL

Son olarak, verilen application_nameve database_urlkoşmalısın

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

1

Konsoldan giriş yaptıysanız, bu işi en son heroku araç kemerinde yapacak,

heroku pg: sıfırla - veritabanı adını onayla



0

Sorununuz için en iyi çözüm

heroku pg:reset -r heroku  --confirm your_heroku_app_name

--kahraman_uygulaman_adınızı doğrulayın

gerekli değildir, ancak terminal her zaman benden bu komutu yapmamı ister.

Bu komuttan sonra, yapı ve malzeme olmadan saf db'ye sahip olacaksınız.

heroku run rake db:schema:load -r heroku

veya

heroku run rake db:migrate -r heroku
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.