Heroku 데이터베이스를 비우는 방법


355

Heroku에서 Ruby on Rails 3 webapp을 만들고 있습니다. 데이터베이스를 비우려면 어떻게합니까?

답변:


689

다음을 사용중인 경우 데이터베이스를 삭제하려면 다음을 수행하십시오 SHARED_DATABASE_URL.

$ heroku pg:reset DATABASE_URL

이제 데이터베이스를 아무 것도 없이 다시 만들 려면

$ heroku run rake db:migrate  

시드 데이터로 데이터베이스 를 채우 려면 :

$ heroku run rake db:seed

---또는---

다음 을 실행 하여 마지막 두 가지 ( migrate & seed )를 하나의 조치로 결합 할 수 있습니다 .

$ heroku run rake db:setup

2014-04-18 편집 : rake db:setupRails 4에서는 작동하지 않으며 a에서는 실패합니다 Couldn't create database error.

2014-10-09 편집 : rake db:setupRails 4와 함께 사용할 수 있습니다 Couldn't create database. 데이터베이스가 heroku pg:reset명령을 사용하여 이미 생성 되었기 때문에 오류가 발생 합니다. 그러나 오류 메시지 다음에 데이터베이스 스키마와 시드를로드합니다.

거의 모든 레이크 명령 으로이 작업을 수행 할 수 있지만 예외가 있습니다. 예를 들어 db:reset를 통해 작동하지 않습니다 heroku run rake. pg:reset대신 사용해야 합니다.

자세한 내용은 Heroku의 설명서를 참조하십시오.

레이크 명령 실행

Postgres DB 재설정


21
감사합니다. 실제로 "heroku pg : reset --db SHARED_DATABASE_URL"이 트릭을 수행했습니다. 하지만 당신은 내가 올바른 방향으로 가고 있습니다.
Jay Godse

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
Haris Krajina

8
몇 초의 시간을 절약하려면heroku pg:reset DATABASE --confirm appname
GangstaGraham

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

아니. 나는 다른 답변의 단어 사용을 언급했다SHARED_DATABASE
Dave Sag

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에 대한 시나리오에서 완벽하게 작동합니다.
Jonathan

heroku가 최근에 이러한 명령의 구문을 변경했기 때문일 수 있습니다.
George Yacoub

1
'heroku restart'는 제가 빠뜨린 핵심 요소였습니다. 감사.
Jeremy Nikolai

heroku run rake db:migrate더 이상 데이터베이스를 재생성하지 않음
Rots


13

이제 명령은

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

1
다시 시작해야 할 필요는 없지만 언급 할만한 것이 좋습니다.
Francisco Quintero

11

나는 Heroku 지원에 연락하여 최신 보석의 버그임을 확인했습니다 (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
모든 보석은 더 이상 사용되지 않습니다. 보석을 제거하고 Heroku 툴 벨트를 설치해야합니다. toolbelt.heroku.com
Ghoti


8

이제 헤 로쿠와는 다릅니다. 시도 : heroku pg : 재설정 데이터베이스-확인


일부 앱의 경우 여전히 SHARED_DATABASE
tfwright

7

오늘 명령

heroku pg:reset --db SHARED_DATABASE_URL

공유 계획을 위해 일하지 않고, 나는

heroku pg:reset SHARED_DATABASE

6

heroku pg:psql다음 명령을 사용하여 DB에 로그인 하고 다음 명령을 입력하십시오.

drop schema public cascade;
create schema public;

6

이제 웹 인터페이스를 통해 데이터베이스를 재설정 할 수도 있습니다.

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

그런 다음 데이터베이스를 작성하고 단일 명령으로 시드하십시오.

heroku run rake db:setup

이제 앱을 다시 시작하고 시도하십시오.

heroku restart
heroku open

4

이것이 나를 위해 일한 것입니다.

1. 명확한 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 웹 사이트를 선호하는 경우 :

  1. https://postgres.heroku.com/databases로 이동
  2. 재설정하려는 데이터베이스를 선택하십시오.
  3. 오른쪽 상단에서 설정 버튼을 클릭하십시오
  4. 아래와 같이 "데이터베이스 재설정"을 클릭하십시오.
  5. "RESET"을 입력하고 확인을 누르십시오

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 pg : reset-데이터베이스 이름 확인



0

당신에게 가장 적합한 해결책은

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.