我几天前将我的第一个rails应用程序部署到了生产服务器。从那时起,我一直在我的开发机器上进行一些修复工作,然后通过git将它们推送到生产服务器。我触摸了restart.txt
文件,然后重新启动了Apache,现在我收到了一个乘客错误,我认为这与宝石和捆绑包有关。
当我第一次开始开发时遇到了一个问题(here),我删除了.bundle
目录。然后我在我的开发机器上再次运行bundle install
,当我修复了一些错误时,一切都很顺利。
现在我已准备好重新部署应用程序的下一个版本,在发现这些错误之后,我检查并注意到我甚至没有.bundle
目录。 bundle install
不会创建新的。我假设没有那个没什么可行的?我应该只是手动创建必需的文件,还是有命令重新生成这些文件?
编辑以添加错误:syntax error on line 3, col 2: adapter:sqlite3'
database.yml
:
# SQLite version 3.x
gem install sqlite3
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
答案 0 :(得分:3)
gem install sqlite3
列表中的database.yml
实际上是否存在于该文件中?如果是这种情况,那就是错误的原因,因为它是无效的YAML。此外,该语句在这里没有意义,因为文件既不被bundler也不被ruby解释。
充其量,只需删除(或评论)那里的陈述并尝试获取。
编辑:通常,在YAML中,空格(尤其是前导空格)非常重要。不要在这里混合空格和标签。它会使解析器混淆。还需要在键和值之间存在空格,如此
key: value
# ^ this space is important!
有关YAML语法的详细信息,请参阅YAML's Wikipedia article。
答案 1 :(得分:1)
@Paul,您可以尝试更新您的gem文件,如下所示
group :production do
# gem 'mysql2' # disabled to debug Paul's issue.
gem 'sqlite3-ruby', :require => 'sqlite3'
end
group :development do
gem 'sqlite3-ruby', :require => 'sqlite3'
end
让我知道这是怎么回事。