私はRailsには新しくなっていますので、私に同行してください。ActiveRecord :: PendingMigrationError - あるサーバーから別のサーバーへの移行
現在、デジタル海洋VM(Ubuntu 14.04)で動作し、Postgresdb 9.6に問題なく接続している既存のプロジェクト(Rails 4.1.6、Ruby 2.1.3)があります。これを新しいVMに移行する必要があります。
私はUbuntu 16.04で新しいvmをセットアップし、RailsとRubyを全く同じバージョンでインストールしました。私はテストレールのアプリを作成しようとし、その正常に動作します。しかし、古いサーバーからこの新しいサーバーにプロジェクトを展開しようとすると、エラーが発生します。
Details:
There was an error while trying to load the gem 'uglifier'.
Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
Backtrace for gem load error is:
/usr/local/lib/ruby/gems/2.1.0/gems/execjs-2.7.0/lib/execjs /runtimes.rb:58:in `autodetect'
/usr/local/lib/ruby/gems/2.1.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/2.1.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.6/lib /active_support/dependencies.rb:247:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:247:in `block in require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:232:in `load_dependency'
インターネットで検索した後、ほとんどの人がGemfileでこの行のコメントを外すように提案しました。
# gem 'therubyracer', platforms: :ruby
これは古いサーバーでコメントされましたが、コメントを外してみると別のエラーで戻ってきました。
Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development
ウェブサイトが同じデータベースに接続していて、古いwebportalが正常に動作していましたが、このエラーが表示されました。だから私はセットアップ新しいテストデシベルと走った次のコマンド -
RAILS_ENV=production bundle exec rake db:create
RAILS_ENV=production bundle exec rake db:setup
RAILS_ENV=production bundle exec rake db:migrate
これらすべてのコマンドが正常に実行されたが、何らかの理由で、私はまだエラーを「移行が.....保留されている」受信しています。
お知らせください。
「テストを実行する」と言うと、rspecテストやその他の自動テストを意味しますか? –
マイグレーションエラーはあなたが '開発 '環境にいるべきだと思っているようですが、実行したマイグレーションは' production'用です...あなたの環境設定が正しくないか、マイグレーションを実行する必要があります代わりに '開発'のため –
@タリアン・イースト。ありがとう..私はそんなに馬鹿だった。私はnginxサイトの利用可能なファイルをチェックし、そこに乗客envは開発に設定されました。私はそれを生産に変更し、それは魅力的な働きをしました。 – Sai