これは初心者の問題かもしれませんが、これまでのところ解決策を見つけることができませんでした。SQLite を使用する Rails アプリをローカルで開発しています。ローカル Git リポジトリをセットアップしました。dotcloud push コマンドはこれを使用しています。ローカルでは開発環境を使用し、DotCloud では自動的に prod 環境を使用します。これは素晴らしいことです。問題は、コードベースへの変更がどれほど小さなものであっても、DotCloud で自分の prod db をプッシュするたびに失われ、'rake db:migrate' を実行して再度セットアップする必要があることです。私はローカルに prod db を持っていません。dev と test db だけです。
4 に答える
3
ここで説明されているように DB を ~/data/ に配置し、デプロイ時にシンボリック リンクを作成します。
ln -s ~/data/production.sqlite3 ~/current/db/production.sqlite3
于 2012-10-03T20:19:18.423 に答える
2
SQLiteデータベースファイルをバージョン管理に含めるべきではありません。複数の開発者がいる場合、誰かが最新の変更をマージするたびに競合します。お気づきのように、本番環境にもプッシュされます。
dbファイルをに追加する必要があります.gitignore
。すでにバージョン管理されている場合は、おそらくgit rm
最初にファイルを作成する必要があります。
于 2011-05-29T15:16:40.533 に答える
0
DotCloud.comでgitがどのように設定されているかはよくわかりませんが、プッシュするベアリポジトリと、適切なgitフックが実行されたときにベアからプルする別のリポジトリがあると想定しています。私たちのマージ戦略を使用するように最後のプルを構成できるかどうかを確認する必要があります。
于 2011-05-29T11:40:44.203 に答える
0
問題は、展開するたびに、展開されたアプリの古いバージョンが消去され、新しいコードに置き換えられ、sqlite db が通常アプリ ファイル内にあることです。私は dotcloud ユーザーではありません。動作するかどうかはわかりませんが、Rails アプリの外部にあるサーバーに本番データベースを配置する共有フォルダーをセットアップすることができます。
于 2011-05-29T09:37:57.637 に答える