1

ライブからリポジトリへの変更を取得するにはどうすればよいですか? heroku アプリで実行されているファイルが変更されたので、プッシュすると上書きされます。

私は自分のphpコードをherokuで実行し、「データベース」のものをローカルファイルに保存しています。

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

したがって、これらはjsonオブジェクトに保存され、保存されます。

4

2 に答える 2

3

これをしないでください!

Heroku は負荷分散された複数の匿名ノードでアプリケーションを実行するクラウド アプリケーション ホストであるため、ローカル ファイルは敵です。

現在、開発目的で 1 つの dyno を実行しているかもしれませんが、サイトを稼働させたい場合は、少なくとも 2 つの dyno が必要になるでしょう (Heroku の無料層サービスは、非無料層サービスとは質的に異なるため、特に、使用されていない場合は無料の dyno をスピンダウンしますが、無料でない dyno に対しては決してスピンダウンしません)。複数の dyno がある場合、キャッシュ以外の目的でローカル ファイルを使用すると、まったく管理できなくなります。

何らかの方法で 1 つの dyno を永久に使用したとしても、Heroku dyno はローカル ストレージを維持することが保証されていません。たとえば、dyno が提供されているマシンでハードウェア障害が発生した場合、Heroku は躊躇せずにアプリケーションを停止させ、削除します。すべてのローカル ストレージを削除し、アプリケーション コードだけをロードして再度起動します。これは、アプリケーションがローカル ストレージを使用することを想定していないためです。

dyno からファイルを取得するためのサポートされている方法はありません。なぜなら、ローカル ファイルを dyno に保存することは決して良い考えではないからです。ただし、本当にこれを行う必要がある場合は、heroku run1 回限りのコマンドを使用して実行し、たとえば、シェルを開いてファイルをどこかにアップロードすることができます。繰り返しますが、深刻な場合にはこれを行わないでください。複数の dyno を使用すると、それらのファイルを管理することがほぼ不可能になるからです。

于 2012-12-04T08:11:34.260 に答える
0

@Andrewに完全に同意します。heroku のサービスとして mongoDB データベースとして何かを使用することをお勧めします: https://addons.heroku.com/catalog/mongolabまたは Elasticsearch (これらのドキュメントに検索機能を追加する場合: https://addons.heroku.com/)カタログ/検索ボックス. json ドキュメントを保存するように適切に設計されており、これらのサービスを使用すると、dyno に関係なくデータが永続化されます。

ここで、heroku ローカル ファイルを取り戻すには、次のようにします。

  1. でheroku bashを実行しますheroku run bash
  2. 作るscp -pYourPort yourFile(s) userName@yourDestination:/pathToSaveLocaion
  3. heroku インスタンスからログアウトする

これがお役に立てば幸いです。

于 2012-12-04T08:30:23.470 に答える