2012-12-04 3 views
1

라이브에서 내 레포로 변경하려면 어떻게해야합니까? heroku 응용 프로그램에서 실행중인 파일이 변경되었으며 지금 내가 이것을 밀어 넣으면 덮어 씁니다.heroku에서 실시간 코드 가져 오기

나는 heroku에서 실행 중이며 '데이터베이스'항목을 로컬 파일에 저장하고 있습니다.

 { 
     "id":1, 
     "date":"12/1/2012", 
     "topImg":"/img/dates/1.jpg" 
     ..... 

그래서 이러한 것들은 json 개체에 저장되고 그냥 저장됩니다.

+0

개체를 로컬 파일에 직접 저장하는 경우 가져 오는 방법이 확실하지 않습니다. 예를 들어 데이터베이스에 저장하면 라이브에서 데이터를 추출 할 수 있습니다. – eis

+0

질문의 종료를 이해하지 못합니까? –

+1

나도 마찬가지입니다. 재개를 위해 투표했다. – eis

답변

3

Do not do this!

Heroku는 여러 익명 부하 분산 노드에서 응용 프로그램을 실행하는 클라우드 응용 프로그램 호스트이기 때문에 로컬 파일이 적대입니다.

아마 지금 개발 목적으로 단일 dyno를 실행하고있을 것입니다. 그러나 사이트를 실시간으로 만들고 싶다면 Heroku 무료 티어 서비스가 비영어권과 정 성적으로 다르므로 적어도 두 개의 dynos가 필요합니다. 무료 티어 서비스를 제공합니다. 특히 사용되지 않는 경우 무료 다이노를 스핀 할 것입니다.하지만 결코 무료 다이노로하지는 않을 것입니다). 여러 개의 dynos가있을 때 캐싱 이외의 다른 용도로 로컬 파일을 사용하면 완전히 관리 할 수 ​​없게됩니다.

어쨌든 영원히 하나의 dyno를 유지하더라도 Heroku 다이노 스는 로컬 스토리지를 유지할 수 없습니다. 예를 들어 dyno가 제공되는 기계에 하드웨어 오류가있는 경우 Heroku는 스핀 다운을 주저하지 않습니다. 응용 프로그램이 모든 로컬 저장소를 삭제하고 응용 프로그램 코드가로드 된 상태에서 다시 스핀 업하십시오. 응용 프로그램이 로컬 저장소를 사용하지 않을 것으로 예상되기 때문입니다.

dyno에서 파일을 가져 오는 방법은 지원되지 않습니다. dyno에 로컬 파일을 저장하는 것은 결코 바람직하지 않기 때문입니다. 그러나 실제로이 작업을 수행해야하는 경우 heroku run을 사용하고 일회용 명령을 실행하여 예를 들어 셸을 열고 어딘가에 파일을 업로드 할 수 있습니다. 다시 말하지만 : 심각한 일은하지 마십시오. 일단 여러 개의 다이노 스를 사용하면 파일을 관리하는 것이 거의 불가능할 수 있습니다.

+0

은 정보에 대해 대단히 환호합니다. 설명서를 읽었지만 찾지 못했습니다. 제가 일하는 클라이언트가 mysql 또는 그 이상의 발전기에 대해 지불하고 싶지 않았던 것이 당연합니다. 나는 이런 상황에 강요 당했다. –

+0

파일 저장을 위해 Amazon S3를 사용하는 옵션을 살펴 보는 것이 좋습니다. 그것은 매우 저렴하고 Heroku에서 S3에 대한 액세스가 빠릅니다. –

0

Totaly는 @Andrew와 동의합니다. heroku : https://addons.heroku.com/catalog/mongolab 또는 elasticsearch와 함께 서비스로 mongoDB 데이터베이스를 사용하려는 경우 해당 문서에 대해 검색 기능을 추가하려는 경우 https://addons.heroku.com/catalog/searchbox. json 문서를 저장하도록 잘 설계되어 있으며 이러한 서비스를 사용하면 다이노스가 무엇이든 관계없이 데이터가 지속적으로 유지된다는 것을 확신 할 수 있습니다. 이제

, 당신의 Heroku가 로컬 파일을 다시 얻기 위해, 나는 그런 식으로 뭔가를 할 것이다 :

  1. 당신에게 Heroku 인스턴스에서 scp -pYourPort yourFile(s) [email protected]:/pathToSaveLocaion
  2. 로그 아웃을 heroku run bash
  3. 와 Heroku가 강타를 실행

도움이되기를 바랍니다.

+0

이 명령에 소용돌이 치기 –

관련 문제