将 Ruby on Rails 应用程序部署到铁路:PostgreSQL 配置崩溃错误

问题描述 投票:0回答:0

我正在使用 Rails 7.0.4 和 Ruby 3.0.2.

我第一次尝试部署,我明白我需要从使用 Redis 和 PostgreSQL 开始。在 Youtube 上的一个视频中,我了解到我应该使用命令行

web: rake db:migrate && bin/rails server -b 0.0.0.0 -p {PORT: -3000}
创建一个 Procfile。之后,我将应用程序放在 GitHub 上,然后选择 Railway 上的应用程序进行部署。然后,我收到一个错误,当我将
{PORT: -3000}
更改为
PORT
时,这个错误显然得到了解决,正如其中一个视频的评论中所建议的那样。我还看到我应该使用以下配置创建一个 railway.json 文件:

{
"$schema": "https://railway.app/railway.schema.json",
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 10
}
}

之后,这次的错误信息不同了:“crashed”。然后,在观看另一个视频时,我了解到我应该在铁路网站上的配置中添加一些参数,特别是在“变量 > RAW 编辑器”下。一些参数是:

DATABASE_URL=postgresql://${{ PGUSER }}:{{ PGPASSWORD }}@${{ PGHOST }}:${{ PGPORT }}/${{ PGDATABASE }}
LANG=en_US.UTF-8
PGDATABASE=railway
PGHOST=containers-us-west-77.railway.app
PGPASSWORD=*********
PGPORT=******
PGUSER=postgres
PORT=3000
RACK_ENV=production
RAILS_ENV=production
RAILS_MASTER_KEY=***********
RAILS_MAX_THREADS=5
REDIS_URL=*********

然而,我再次收到“Crashed”错误,在数据日志中,错误是

URI::InvalidURIError: bad URI(is not URI?): postgresql://postgres:{{ PGPASSWORD }}@containers-us
(...)。

在此处发布此问题之前,我搜索了任何类似的问题并在将 Ruby on Rails 应用程序部署到铁路 中找到了帖子。但是,该帖子的答案指出所有文件都应具有此权限集:

-rwxr-xr-x
,而我的已经是。

查看RAW Editor ENV中的PGPASSWORD和Postgres connect中的PGPASSWORD,是一样的。我的主要问题是:在 Gemfile 中,Active Record 的数据库设置为“gem 'sqlite3', '1.4'”。这与它有关吗?我应该改用 PostgreSQL 吗?

ruby-on-rails ruby postgresql deployment railway
© www.soinside.com 2019 - 2024. All rights reserved.