【问题标题】:Capistrano updating my app from Sqlite3 to Rails, Gem::LoadErrorCapistrano 将我的应用程序从 Sqlite3 更新到 Rails,Gem::LoadError
【发布时间】:2019-09-23 22:30:30
【问题描述】:

我正在将我的 Rails 应用程序从 Sqlite3 升级到 Postgresql。我正在使用 Ansible 设置我的服务器并使用 Capistrano 进行部署。我能够成功运行 ansible,现在我正在尝试将我的分支部署到安装了 Sqlite3 的现有服务器上。

在 capistrano 台阶上:

deploy:assets:precompile 我收到此错误

     $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
      01 rake aborted!
      01 Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

但我不明白。我在尝试部署的分支中设置了 Postgresql。

这是我的数据库 yml 文件。

   default: &default
   adapter: postgresql
   encoding: unicode
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   timeout: 5000

development:
  <<: *default
  database: {appname}_development

test:
  <<: *default
  database: {appname}_test

staging:
  <<: *default
  database: {appname}_staging
  username: <%= Rails.application.secrets[:db_username] %>
  password: <%= Rails.application.secrets[:db_password] %>

显然用我的实际应用程序名称更改了 {appname}。我没有包含生产密钥,因为这个应用程序没有生产网站,只有一个登台服务器。它更像是我用于铁轨的游乐场。

有人有解决此问题的经验吗?我真的不确定 Capfile 是否有问题,或者我是否遗漏了什么。谢谢(如果您需要更多我的代码,请告诉我)

值得注意的是,这个应用程序仍在运行 Rails 5.1(我接下来要更新它,我只是想先在 Postgres db 上获取它)

编辑:好的,我正在做某事。我发现这个 capistrano 步骤:

         04 ln -s /var/www/{appname}/shared/config/database.yml /var/www/{appname}/releases/20190923224949/config/database.yml

没有将我的数据库 yml 更新为更新后的 postgres 数据库。我猜我在某个地方遗漏了一些东西。 :哭:

【问题讨论】:

    标签: ruby-on-rails postgresql capistrano


    【解决方案1】:

    我明白了。我是天才。

    我必须重新运行网络服务器剧本才能将我的 database.yml 文件放到服务器上。

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 2013-05-31
      • 2019-07-04
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多