3

Herokuに登録フォームを使用して超シンプルなSinatraアプリをデプロイしようとしています。

エラーが発生します

Process exited with status 1
2012-09-27T05:59:01+00:00 heroku[web.1]: State changed from starting to crashed

そのイベントのログをさらに上に移動すると、/ app / vendor / bundle / ruby​​ / 1.9.1 / gems / dm-core-1.2.0 / lib / dm-core / adapters.rb:163:in `require':no suchロードするファイル--dm-sqlite-adapter(LoadError)

私のgemファイルは次のようになります。

group :development do
   gem 'dm-sqlite-adapter'
end
group :production do
  gem 'pg'
  gem 'dm-postgres-adapter'
end

スタックオーバーフローを見ると、herokuが本番グループを選択していないか、postgresデータベースを設定していないようです。(暗闇の中で野生の刺し傷、私を笑わないでください)

しかし、これを実行します

tonto:bpbl willbarker$ heroku addons 
=== serene-sea-9304 Configured Add-ons
heroku-postgresql:dev HEROKU_POSTGRESQL_COBALT

postgresデータベースが構成されていることを示します。それで、それは何らかの理由で開発モードで実行されていますか?その行を無視するにはどうすればよいですか?

4

1 に答える 1

4

おそらく、HerokuでDATABASE_URL 環境変数を設定する必要があります。

表示されるエラーはno such file to load -- dm-sqlite-adapterであるため、必要に応じて、ファイル利用できず:development、Gemfile 内のグループがインストールされていません。

アプリが Datamapper をセットアップするときは、次の行を使用します。

DataMapper::setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/campaign.db")

したがって、呼び出された環境変数を探していますDATABASE_URLが、見つからないため、Sqlite URL にフォールバックしています。これにより、Datamapper がロードを試みdm-sqlite-adapter、エラーが発生します。

解決策は、それが設定されていることを確認することDATABASE_URLです。実行してみてくださいheroku config– のエントリが表示されない可能性がありますDATABASE_URL。次のコマンドを使用して、構成済みのデータベースを昇格できるはずです。

$ heroku pg:promote HEROKU_POSTGRESQL_COBALT
于 2012-09-27T22:24:27.507 に答える