Heroku의 두 앱간에 데이터베이스 공유
다른 Heroku 앱에서 앱 데이터베이스에 액세스하고 싶습니다. 공유 데이터베이스에서 가능합니까?
업데이트 됨
원래이 답변은 몇 가지 트릭으로 가능하지만 강력히 권장하지 않습니다 . 이것은 Heroku 개발자 지원 웹 사이트의 조언을 기반으로합니다. 그러나 최근 Heroku는 달성하는 방법을 설명하는 통신문을 발표하는 개발자 사이트에서 조언을 제공했습니다. 이 이메일 섹션의 전체 텍스트는 다음과 가변적입니다.
Heroku 앱이 공통 데이터베이스를 공유 할 수있는 것을 알고 계십니까? 예를 들어, 사용자 대면 코드와는 별도의 애플리케이션에 분석 기능을 배치 할 수 있습니다.
여러 앱의 DATABASE_URL 구성 변수를 동일한 값으로 설정하기 만하면됩니다. 먼저 기존 앱의 DATABASE_URL을 가져옵니다.
$ heroku config | grep DATABASE_URL --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute1.amazonaws.com/ldfoiusfsf
그런 다음 새 앱의 DATABASE_URL을 다음 값으로 설정합니다.
$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74. That's it
— 이제 두 앱이 하나의 데이터베이스를 공유합니다.
참고로 Heroku의 원래 조언은 API를 생성하고 사용하여 원격으로 데이터에 액세스 것이 었습니다. 제 개인적인 견해는 전반적으로 많은에서 이것이 좋은 조언입니다 (즉, 동일한 상황 DB에 여러 응용 프로그램을 연결하는 것보다 낫습니다). 가치가있는 것보다 더 문제가 발생하는 상황을 볼 수 있습니다.
최신 정보
이 답변에 대한 의견에 따라 Heroku는 필요에 따라 데이터베이스 URL을 언급 권리가 있음을 주목할 가치가 있습니다. 이 경우 보조 연결이 실패 할 때 그에 따라 URL을 업데이트해야합니다.
관련 질문에 대한 최신 답변!
Heroku는 이제 애드온 프레임 워크를 통해 더 나은 / 우아한 솔루션을 공식적으로 지원합니다. 앱간에 애드온을 공유하는 방법에 대한 최신 뉴스 레터에 설명되어 있습니다. 다음은이 글에서 언급 된 스 니펫입니다.
$ heroku addons:attach my-sushi-db -a my-sushi-reporting --as MAIN_SUSHI_DB
Adding MAIN_SUSHI_DB to my-sushi-reporting... done
Setting MAIN_SUSHI_DB vars and restarting my-sushi-app-reporting... done, v3
링크 : expanding_the_power_of_add_ons
내가 아는 가능한 한 -DB로 앱의 heroku 구성 변수를 본 다음 데이터베이스를 공유하려는 앱에서 database_url을 동일한 값으로 설정해야합니다. 그래도 조금 벗어 났고 어떻게 지원 모르겠습니다.
편집 마음을 쉬게하기 위해 Heroku에서 제목이있는 간단한 비계 '포스트'라는 두 개의 개의 앱을 만들었습니다.
http://evening-spring-734.heroku.com/posts 가 마스터입니다.
http://electric-galaxy-230.heroku.com/posts- 노예입니다
따라서 둘 중 하나에 해당하는 게시물은 저녁 봄 734의 데이터베이스 URL에 기록됩니다.
저녁 봄 -734의 DATABASE_URL을 다음 electric-galaxy-230의 DATABASE_URL에 동일한 값을 설정하는 것입니다.
과일 같은 DB 경쟁 조건으로 끝날 수 있습니다.
매직 응?
최근에 Heroku 뉴스 레터에서 교회입니다. 실제로 승인 된 사용인지 확인하기 위해 이메일을 보냅니다.
알고 계십니까?
하나의 데이터베이스를 여러 앱과 공유
Heroku 앱이 공통 데이터베이스를 공유 할 수있는 것을 알고 계십니까? 예를 들어, 사용자 대면 코드와는 별도의 애플리케이션에 분석 기능을 배치 할 수 있습니다.
여러 앱 의
DATABASE_URL
구성 변수 를 동일한 값으로 설정하기 만하면 됩니다. 먼저DATABASE_URL
기존 앱을 가져옵니다 .$ heroku config | grep DATABASE_URL --app sushi DATABASE_URL => postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf
그런 다음
DATABASE_URL
새 앱용을 다음 값으로 설정합니다 .$ heroku config:add DATABASE_URL=postgres://lswlmfdsfos:5FSLVUSLLT123@ec2-123-456-78-90.compute-1.amazonaws.com/ldfoiusfsf --app sushi-analytics Adding config vars: DATABASE_URL => postgres://lswlm...m/ldfoiusfsf Restarting app... done, v74.
이제 두 앱이 하나의 데이터베이스를 공유합니다.
Amazon RDS 작동은이를 위해 잘 작동합니다. 여러 앱이 동일한 RDS 인스턴스를 공유 할 수 있습니다.
active_record.table_name_prefix를 사용하여 테이블을 공유하거나 테이블 이름 충돌을 피할 수있는 유연성이 있습니다.
Heroku 참조 참조 : https://devcenter.heroku.com/categories/heroku-postgres
Q : 다수의 Heroku 애플리케이션을 단일 데이터베이스에 다수의 운영 체제입니까?
예. 자격 증명이있는 경우 Heroku에서 실행되는 여러 애플리케이션을 단일 데이터베이스에 연결하도록 구성 할 수 있습니다. heroku config : add DATABASE_URL = ... 명령을 사용하여 연결하려는 앱의 DATABASE_URL을 재정의합니다.
참고 URL : https://stackoverflow.com/questions/5981508/share-database-between-2-apps-in-heroku
'IT' 카테고리의 다른 글
Rails에서 테스트 할 때 HTTP_REFERER를 어떻게 설정하나요? (0) | 2020.09.14 |
---|---|
서비스 내 브로드 캐스트 혜택 (0) | 2020.09.14 |
사용자에게 Chrome 확장 프로그램이 설치되어 있는지 확인 (0) | 2020.09.13 |
h5py에 대한 입력 및 출력 numpy 배열 (0) | 2020.09.13 |
사용자가 PHP의 localhost에 어떻게 알 수 있습니까? (0) | 2020.09.13 |