【Heroku】部署时出错:错误:推送某些引用失败

首先

因为在Heroku部署时出现了以下错误:无法推送一些引用,所以我将其记录下来。

◼️做过的事情 (zuò guò de shì

1. 获取新的Heroku网址

$ heroku create

2. 在Gemfile文件中添加以下的gem

gem 'net-smtp'
gem 'net-imap'
gem 'net-pop'

3. 安装

$ bundle install

添加Heroku构建包

$ heroku buildpacks:set heroku/ruby
$ heroku buildpacks:add --index 1 heroku/nodejs

5. 在Heroku上添加PostgreSQL的插件

$ heroku addons:create heroku-postgresql

6. 將應用程式部署到Heroku上

$ git push heroku master

◼️出现错误

スクリーンショット 2023-06-01 11.23.57.png

可能有多种原因。

Possible paraphrase in Chinese:
可能有很多原因。

由于堆栈版本不同,导致错误出现。

▼应对

确认stack的版本

$ heroku stack
スクリーンショット 2023-06-01 11.53.45.png
$ heroku stack:set heroku-20

◼ 错误发生②

在删除了Bootstrap的内容和Javascript之后,再次运行heroku run rails db:migrate时发生了错误。

スクリーンショット 2023-06-01 12.07.04.png

关注config/database.yml文件的描述

对于PostgreSQL来说

default: &default
  adapter: postgresql // ここがPostgreSQL
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # https://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

据说如果在rails new时没有指定PostgreSQL,就会出现以下的记载。

default: &default
  adapter: sqlite3 // ここがSQLite3
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # https://guides.rubyonrails.org/configuring.html#database-pooling
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

因此,我得出了以下的原因。(这是Dpro学校的导师教给我的?)

• 原因 – The reason for it.

我忘记了在创建Rails应用程序时将数据库选项设为PostgreSQL,这导致了问题。我还不太熟悉,所以忽略了一个简单的事情。

▼应对

执行将SQLite3更改为PostgreSQL的命令。

$ rails db:system:change --to=postgresql

以下操作完成后,即可部署:
1. 运行命令 rails db:migrate
2. 执行命令 git add .
3. 提交代码,命令为 git commit
4. 将代码推送至 Heroku 主分支,命令为 git push heroku master
5. 运行命令 heroku run rails db:migrate 进行数据库迁移操作。

◼️最终

在初次尝试Heroku部署时,我遇到了许多错误,耗费了很多时间。然而,错误的原因却很简单。为了避免初级错误,我会更加努力地学习。

请参考

Heroku
https://devcenter.heroku.com/ja/articles/stack
在Rails 6中,将数据库从SQLite3更改为PostgreSQL只需一条命令

广告
将在 10 秒后关闭
bannerAds