2017-03-24 5 views
4

CRM에 Salesforce를 사용하고 있지만 Heroku 기반 Sinatra 응용 프로그램에 대한 데이터 (여러 레코드, 그래서 Zapier가 없음)를 쿼리해야합니다. Heroku는 Salesforce 객체를 Salesforce에서 정기적으로 Postgres 테이블에 복제하는 서비스를 제공합니다.Sinatra 응용 프로그램 용 기존 Heroku Postgres DB에 연결

전 Sinatra 앱을 코딩하여 Heroku에서 호스팅 했으므로 로컬로 dev db를 설정 한 다음 많은 튜토리얼을 통해 프로덕션으로 푸시하는 과정에 익숙합니다. 그러나 필자는 필자가 필요로하는 데이터로 이미 채워져있는 기존 프로덕션 Postgres DB에 연결할 수있는 정보를 찾는 문제에 직면 해 있습니다.이 작업을 수행하는 동안 로컬 Dev DB에 연결할 필요가 없습니다.

에게 Heroku는 다음 enter image description here

어떻게 내가 안전하게 그래서 이러한 다양한 자격 증명을 연결 위치를 내 다음 파일 테이블 Venue__c 및 Spaces__c에 연결 할 수있는 권리 정보가 나에게 제공?
app.rb
/설정
- database.yml을
- environments.rb

답변

3

당신이 ActiveRecord을 가지고 있다고 가정하면, 그냥 제대로 database.yml를 구성하는 경우이어야한다. 예를 들어 개발 환경에 직접 연결하려면 다음과 같이 사용하십시오.

# database.yml 
development: 
    adapter: postgresql 
    encoding: unicode 
    database: your_database 
    username: your_user 
    password: your_password 
    host: your_host 
    port: your_port 

# or alternatively, using the URI 
development: 
    url: postgres://your_user:[email protected]_host/your_database 
+0

개발 데이터베이스를 만드는 것이 필요합니까? 귀하의 솔루션은 내가 개발 데이터베이스로 라이브 Heroku 포스트그레스 DB를 사용할 수 제안? 나는 ActiveRecord를 사용하고 있지만, 어떤 rake도 실행하지 않았다.이 db가 자동적으로 데이터를 가지고 있다는 것을 고려해야 할 필요가 있는가? – csakon

+0

@csakon : 예, 이것은 Heroku의 DB에 직접 연결됩니다. dev 데이터베이스가 필요한 경우 몇 가지 옵션이 있습니다. 보조 Salesforce 계정을 설정하고 동기화 할 수있는 새로운 Postgres DB를 설정하고 그 위에 개발할 수 있습니다. 또는 동기화에 신경 쓰지 않는다면 로컬 Postgres DB를 설정하고 라이브에서 dev에 데이터를 가져올 수 있습니다 (자세한 내용은 여기를 참조하십시오 : https://devcenter.heroku.com/articles/heroku-postgres-import). -export # restore-to-local-database) – gwcodes

+0

정말로 dev db 환경을 가지고 있어도 상관 없습니다 (코드는 'production :'이라고 말할 것입니다.)하지만 더 중요한 것은 내가 가진 문제는 연결입니다. 이미 위에서 제공 한 코드가 있지만 연결 (내부 서버 오류) 연결되어 있지 않습니다. 만약 내가 기존 데이터를 기존 데이터베이스에 연결하는 경우 내가 뭔가 다른 일이 있는지 궁금하네요 처음부터 하나를 설정 대. – csakon

0

Heroku는 환경 변수의 URL을 통해 데이터베이스 자격 증명을 게시합니다. ENV.fetch("DATABASE_URL")을 통해 액세스 할 수 있어야합니다. ORM에 따라 다른 방법으로 데이터베이스에 연결합니다 (예 : SequelSequel.connect(ENV.fetch("DATABASE_URL"))에 대한 매개 변수로이 값을 직접 사용할 수 있습니다.

ActiveRecord을 사용하는 것처럼 this post에 제안 된대로 ActiveRecord::Base.establish_connection(...)을 사용할 수 있습니다. URL은 더 이상 필요하지 않을 수도 있습니다. 이 코드는 database.yml으로 직접 변환되지 않지만 레일즈를 사용하지 않으므로 environment.rb 또는 그 중 일부 버전을 제공해야하며 그 위치에서 쉽게 수행 할 수 있어야합니다.