我正在使用 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 吗?