2

Railsの展開について知り始めたばかりなので、この質問がばかげていると思われる場合はご容赦ください。私は(ローカルマシンで)railsアプリを作成し、それをキャプティブ化し、gitを開始し、それをプッシュして(origin-> master to private repo)、VPSにクローンを作成しました。ただし、その後、サーバーの特性のためにサーバー上のいくつかのファイルを変更する必要があり、リポジトリが明らかに一致しなくなりました。Capistranoを使い始めたいのですが、そのままでは何もできません(ローカルマシンの変更に追いつくことすらできませんでした)。それで、私はいくつかの質問があります。

a)これについて続けるための最良の方法は何ですか?githubリポジトリを削除してから、VPSからプッシュして別のリポジトリを作成し、ローカルマシンに複製することはできますか?もしそうなら、最初にサーバー上のリポジトリを「degit」(.gitフォルダーを削除)する必要がありますか?または、アプリディレクトリをローカルマシンにコピーしてから、これらすべてをもう一度実行するのが最善の方法ですか?

b)私に関する限り、サーバーと開発マシンの間で異なる必要がある唯一のファイルはdatabase.ymlファイルです。それを.gitignoreに追加する必要がありますか?はいの場合、次のファイルは削除されますか?マスターから変更をプルするときは?

c)(最初に)オリジンとしてVPSからgithubにプッシュした場合、後で役割を変更できますか?ローカルマシンからマスターに変更をプッシュするたびに変更されますか?

d)変更を自動的にプルする別の方法がある場合は、Capistranoを使用することも意味がありますか(コミットフックを使用している人がいると聞きました)?現時点では、VPSのアプリフォルダーを最新の状態に保ちたいので、githubとcapfileおよびdeploy.rbには非常に多くのオプションが用意されているようです。少しでもエレガントではありません。

ご清聴ありがとうございました。良い一日を。よろしくお願いします、ユージーン。

4

1 に答える 1

0

a)、結合されたdiffをdiffファイルとして取得し、ローカルコードに適用することはできませんか?それともそこからコミットしますか?次に、githubリポジトリに変更が加えられます。(個人情報を公開する変更を無視git add -pし、重要なファイルで使用します)

b)の場合、database.ymlファイルは、環境(開発/本番)ごとに異なる構成を持つように既に構成されています。さらに何かが必要な場合は、ERBを使用して環境変数を読み取る(本番マシンで設定する)ことができます。

`database.yml`ファイル内の環境変数にアクセスできません

一方、無視されたファイルにdatabase.ymlを追加する場合は、それを生成するための別の方法が必要になります。

c)私には意味がありません。VPSのリポジトリにはデフォルトのリモートが設定されており、ローカルリポジトリも、好きな場所からプッシュ、プル、フェッチできます。

d)capistranoは十分に優れています。多くのフックなどで構成を過負荷にしないように注意してください。管理が難しくなる可能性があります。capistranoを介した展開はほんの数秒で、心配する必要はありません。

于 2012-10-08T12:46:03.900 に答える