我正处于升级rails 4 app的过程中。
在rails upgrade guide之后,我使用gemfile
替换了4.2.10
更新了当前的rails版本。
但是在运行5.0.0
之后,即使在运行bundle update rails
(使用4.2.10
)后,我也会遇到许多不兼容问题,这会将所有宝石更新为最新版本。
以下是我在gemfile中使用rails 4.2.10
运行bundle update rails
后遇到的兼容性错误:
rails 5.0.0
答案 0 :(得分:0)
你的问题是什么?
在更新gem之前,您必须检查您的项目代码和依赖项是否已准备好进行此更改,如果这是一个大应用程序,则不是一个简单的过程。
gem install <gem> -v=<version>
e.g。
gem install rails -v=4.2
这样您的rails应用程序应该使用您想要的版本。
检查你的Gemfile.lock:
bundle update
或者删除您的Gemfile.lock(当您尝试启动rails应用时,它会自动重建)。
答案 1 :(得分:0)
最后经过多次试验和测试,我能够运行bundle install。列出我尝试的步骤 -
<强> 1。使用带有rails new
的rails 5
创建一个新的演示应用程序。
<强> 2。删除现有的Gemfile.lock
。
第3。删除所有当前的宝石 :(我在gem list --no-versions
中使用 for i;执行从{{3引用的gem uninstall -aIx $ i;已完成 命令}}。)
<强> 4。将现有Gemfile
替换为通过创建新的rails 5
应用生成的新版Gemfile
。 (假设您将拥有现有bundle install
的备份副本。)
<强> 5。将单个gems从旧文件复制到新文件。
<强> 6。运行rails app:update
。 (执行完毕后你应该有:)。
<强> 7。运行engine.name=corp-000
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost/corp?tinyInt1isBit=false
db.user=root
db.password=
registration.url=
sync.url=http://localhost:31415/sync/corp-000
group.id=corp
external.id=000
job.purge.period.time.ms=7200000
job.routing.period.time.ms=5000
job.push.period.time.ms=10000
job.pull.period.time.ms=10000
initial.load.create.first=true
auto.registration=true
auto.reload=true
继续升级过程。