更新: 最初に行うことは、デプロイに関する教育を受けることです: Rails サイトでここから始めてください。
つまり、ローカル マシンの場合と同様に、サーバー上にデータベースをセットアップする必要があります。SVN からコードをチェックアウトすると、データベースではなく、アプリケーションのみが取得されます。
タイトルで、サーバーに Passenger をセットアップしていると述べています。rails s
Passenger は、開発で使用しているコマンドを置き換える Apache (または Nginx) のモジュールです。RailsEnv <something>
アプリが何をどのように開始および実行するかを決定するために設定する必要があるのは、このパッセンジャー構成ファイルです。
データベース サーバーが同じであり (両方のプラットフォームの MySQL など)、環境も同じ (「開発」など) で、app/db/database.yml
ファイルがソース管理にチェックインされている場合は、スキップしてください。
データベースと環境が異なる場合 (開発中の SQLLite と本番環境の MySQL など) は、必要な構成を追加する必要があります -- データベース名、ホスト、ポート、ユーザー名、環境のパスワードを database.yml に追加します (そして指定します)。環境に基づいて、Gemfile 内の適切なデータベース gem)。パスワードを保存している場合、database.yml ファイルをチェックインすることはお勧めしませんが、それは別のトピックです。最後に、サーバーの database.yml に適切なデータベース構成が必要です。
bundle exec rake db:setup
その後、アプリのルート ディレクトリからサーバー上で実行できます。これにより、現在のスキーマでデータベースが初期化され、必要なシード.rb セットアップが実行されます。をチェックしrake -T
て、検討できる他のオプションを確認してください。
Once that's done, subsequent deployments require that you check out your latest code from SVN, and usually restart the app (with Passenger, this is done with the command touch tmp/restart.txt
from the app's root directory. If you have made changes to the database structure, before restarting, run bundle exec rake db:migrate
Oh, yeah, in production, if you're using the default environment, you'll also need to run bundle exec rake assets:precompile
the first time, and every time afterwards if you have added images, changed javascript/coffeescript or css/sass files.
そうは言っても、カピストラーノに関する@rwilliamsのコメントは、間違いなくあなたが考えたいものです。ご覧のとおり、デプロイはトリッキーです。アプリが大きくなるにつれて、シンプルにしたくなるでしょう。cap deploy
Capistrano を使用すると、や などのコマンドをデプロイするスクリプトをセットアップできますcap staging deploy:migrations
。学ぶことはたくさんありますが、努力する価値はあります。