ActiveRecord :: PendingMigrationError - 从一台服务器迁移到另一台服务器

时间:2017-02-01 23:02:00

标签: ruby-on-rails postgresql

我是Rails的新手所以请耐心等待。

目前,在数字远程VM(Ubuntu 14.04)上运行的现有项目(Rails 4.1.6,Ruby 2.1.3)及其与Postgresdb 9.6的连接没有任何问题。我必须将其迁移到新VM。

我已经使用Ubuntu 16.04设置了一个新的vm,安装了完全相同版本的Rails和Ruby。我尝试创建一个测试rails应用程序,它的工作正常。但是,当我尝试将项目从旧服务器部署到这个新服务器时,它给了我错误。

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

所有这些命令都已成功执行但由于某种原因,我仍然收到“迁移正在等待.....”错误。

请告知。

1 个答案:

答案 0 :(得分:1)

迁移错误似乎认为您应该在development环境中...但您运行的迁移是production ...因此您的环境设置不正确,或者您需要运行development的迁移