1

Capistranoを使用してRailsアプリをNGinx&Passengerを実行しているサーバーにデプロイすることができました。デプロイ時に、「申し訳ありませんが、問題が発生しました」というメッセージが表示され、本番ログが空白であるため、かなり混乱していました。次に、NGinx Confでに切り替えましたrails_env 。現在、次のようになっています。development

SQLite3::CantOpenException

unable to open database file
Rails.root: /www/testcap/releases/20120407015032

サーバーにログインし、(最新リリースへのシンボリックリンクであると思われる)currentフォルダーにログインして実行しましたが、dbファイルは存在します。アプリのフォルダー内を見ると、&の両方が表示されます。testcaprake db:createdbdevelopment.dbtest.db

実行rails s -e productionしてからmyurl.com:3000にアクセスすると、アプリは完全に正常に動作しますが、これは奇妙なことです。また、実行しても正常に動作しrails s -e developmentます。

ここで何が問題になるのか、私は完全に途方に暮れています。私はそれが潜在的にcapistranoで、比較的明白な問題であるに違いないと確信していますか?私はまだそれに慣れていないので、私は何かを逃した可能性がありますが、これまでのグーグルは無益でした。

私が考えることができる唯一のことは、私のデータベースに明示的に関連するものは何もないということconfig/deploy.rbです。しかし、これまでのところ、ネット上で役立つガイドを見つけることができませんでした。

よろしくお願いします:)

ジャック。

4

1 に答える 1

1

上記のAdamP&Ben Lからのコメントのおかげで、私はなんとかこれを前進させることができました。このガイドも私の問題を解決しました。

上記のガイドの手順に従い、ファイルでデータベースdatabase.ymlへのパスを次の場所から変更しました。production

`db/production.sqlite3`

`/www/testcap/shared/db/production.sqlite3` 

(例:絶対パス)

次に、これを自分のconfig/deploy.rb:に追加しました。

role :db, "{my vps IP}", :primary => true

私のVPSで、nginx confに入り、行を削除しましたrails_env development(Passengerはproductionデフォルトで設定します)。

次に実行したcap deploycap deploy:migrate、が機能し、URLにアクセスするとアプリが表示されます。

私はこれが将来誰かが同じ問題で立ち往生するのを助けるかもしれないことを願っています:)

ジャック。

于 2012-04-07T12:40:59.743 に答える