0

Herokuへのデプロイに関する問題に関する投稿が多数ありますが、私の場合の解決策を見つけることができませんでした。任意の入力をいただければ幸いです。

ローカルで正常に動作するブログアプリケーションがあります。ただし、Herokuにデプロイすると、「申し訳ありませんが、問題が発生しました」と返されます。

私が持っている宝石は次のとおりです。

group :development do
  gem 'sqlite3', '1.3.5'
end

group :production do
  gem 'pg', '0.12.2'
end

私が取った手順は次のとおりです。

git add.
git commit -am "latest update"
git push
git push heroku
rake db:migrate
heroku run rake db:migrate

Railsコンソールから最新のブログエントリ(Blog.find(21))を見つけることができるため、SQLite3データベースは正常に移行しています。ただし、Herokuコンソールが返すため、データはHerokuデータベースに移行されていないようです。

"ActiveRecord::RecordNotFound: Couldn't find Blog with id=21."

さらに、「herokuログ」は次のことを検出します。

Completed 500 Internal Server Error in 50ms
NoMethod Error (undefined method 'blogs' for nil:NilClass):
  app/controllers/static_pages_controller.rb:8:in 'home'

これは、static_pages_controllerに問題がある可能性があることを意味しますか、それともデータベースが正しく移行されていないためにエラーを返すだけですか?

以下は私のstatic_pagesコントローラーで、ローカルサーバーで正常に動作します。

class StaticPagesController < ApplicationController
  def home
    if signed_in?
      @blog = current_editor.blogs.build
    end

    @editor = Editor.first
    @blogs = @editor.blogs.paginate(page: params[:page])
  end
end

注:私(つまり、editor_id:1)が私のブログの唯一の編集者になるため、上記のEditor.firstを使用しています。password_digestを保存するためのエディターモデルを作成しました。

では、なぜ私のアプリケーションがHerokuにデプロイされないのですか?

フィードバックをいただければ幸いです。また、追加のファイルを表示する必要がある場合はお知らせください。添付します。

本当にありがとう!

4

1 に答える 1

5

実行db:migrateするとデータベースの移行のみが実行され、開発環境から Heroku にデータはコピーされません。heroku db:pushローカル環境から Heroku にデータをプッシュするために使用する必要があります。

インポート: Heroku にプッシュ

heroku db:push既存のデータベースを Heroku に移行したい場合に使用します。たとえば、ローカル開発で使用してきた SQLite データベースや、別のホストにデプロイした MySQL データベースをインポートしたい場合があります。

それはあなたがやりたいことのように聞こえるので、実行してみてくださいheroku db:push

于 2012-06-22T05:36:30.047 に答える