【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
◼️出现错误
可能有多种原因。
Possible paraphrase in Chinese:
可能有很多原因。
由于堆栈版本不同,导致错误出现。
▼应对
确认stack的版本
$ heroku stack
$ heroku stack:set heroku-20
◼ 错误发生②
在删除了Bootstrap的内容和Javascript之后,再次运行heroku run rails db:migrate时发生了错误。
关注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只需一条命令