聋人社区。
这是一个奇怪的,我自己想不出来。
我即将在生产服务器上部署一个RubyonRails应用程序。我喜欢像你一样在开发和生产之间保持所有版本的一致性
在我的Gemfile中,我将Ruby版本设置为2.7.1(正确(,在开发过程中,我安装了2.7.1,并在本地为这个特定的项目使用该版本。一切都很好!-这是条目:
Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.7.1'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.3', '>= 6.0.3.2'
...
问题:
在生产中,我安装并使用(通过rbenv(ruby 2.7.1。我验证了该版本已安装&正在使用中!然而,当它试图迁移我的数据库或执行任何其他任务时,它会输出以下
Your Ruby version is 2.7.0, but your Gemfile specified 2.7.1
我甚至没有安装2.7.0。因此,为了这个目的,我在生产中编辑了Gemfile来运行测试。为了测试的目的,我将ruby verions设置为2.7.0,并运行另一个启动机架的命令。现在的信息是:
Your Ruby version is 2.7.1, but your Gemfile specified 2.7.0
发生了什么我以前从未遇到或看到过类似的问题。非常感谢您的帮助!非常感谢。
以下是环境详细信息:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
$ rails -v
Rails 6.0.3.2
$ bundle -v
Bundler version 2.1.4
我发现最好的解决方案是从您的ruby版本管理器中卸载所有版本的ruby(不熟悉rbenv,但你应该能够列出所有安装的版本,然后逐个卸载不需要的版本,直到只剩下你需要的版本。如果你需要多个版本,最好设置一个脚本,让你快速切换或设置独立的开发环境(基本上是虚拟机(,这样你就可以确保它只有它需要的版本了。
在那之后,它要么会正常工作,要么你会收到一条错误消息,这可能有助于确定问题的根本原因。