2008-09-01 12 views
7

私はCapistranoを認識していますが、私にとっては重すぎます。個人的に私は2つのMercurialリポジトリを設定しました。一つは実動サーバーに、もう一つは私のローカルの開発マシンにあります。定期的に、新しい機能が準備できたら、ローカルマシンのリポジトリからサーバーのリポジトリに変更をプッシュし、サーバー上で更新します。これは、いくつかのコンピュータでファイルを同期させておくのは非常に簡単で素早い方法ですが、データベースの更新には役立ちません。サーバー上のWebアプリケーションをどのように更新しますか?

問題を解決するにはどうすればよいですか?

答えて

1

git pushを使用してWebサーバーに公開していましたが、最近はrsyncを使用しています。私は自分のサイトを可能な限り実行している(相対的なパスなどを使って)無関係なサイトにしようとしていますが、これまでのところかなりうまくいきました。唯一の課題は、データベースの同期を維持することです。そのためには、通常、運用データベースをマスターとして使用し、定期的なバックアップとテストデータベースへのインポートを行います。

+0

私は同じことをやっていますが、最近、これは本当に原子ではないと思っています。常に使用されているウェブサイトには最適ではありません(すべてのファイルが同期していない壊れた段階でユーザーがアクセスする可能性があります)。 – Gilles

+0

私はそれを行うより最適な方法は、フォルダBにあなたのライブウェブサイトが含まれているし、現在のライブバージョンを指しているシンボリックリンクを上書きすることによってスイッチフォームAからBを行う間、フォルダAにrsyncすることです。次回は、rsyncをBに設定します。 – Gilles

0

@Andrew

あなたが最初に行う必要がありますあなたのサイトを展開するためにGitのプッシュを使用するには、にプッシュするあなたの.git/configファイルにリモートサーバを設定します。次に、基本的にgit resetを実行するフックを設定する必要があります。-hardは、リポジトリにコピーしたコードを作業ディレクトリにコピーします。

これはちょっと漠然としていますが、rsyncに切り替えると、実際にはサーバー側の.gitフォルダが削除されています。そのため、魔法を実行するために使用したスクリプトはありません。それは完全な質問のための良い候補かもしれないので、あなたはそのようにもっと多くの反応を得るかもしれません。

編集:私はそれがしばらくしているけど、私は最終的に私は再び使用していたものが見つかりました:私はあなたがRuby on Railsでの話していると仮定してい

Deploy a project using Git push

1

またはFabric

はハウツーWikiをご覧ください。

+0

ファブリックの詳細:http://stackoverflow.com/questions/1233655/what-is-the-simplest-way-to-ssh-using-python – hughdbrown

1

カピストラーノについては何ですか?ファイルを同期する場合は、rsyncが素晴らしいことを確認してください。しかし、もしあなたがDBアップデートをしなければならないのであれば、キャップはそれほど悪くないでしょうか?

関連する問題