资讯动态

Redwood 部署到 Render:从 `setup deploy render` 到 Blueprint 自动部署的完整实战指南

发布时间:2026/9/24 15:15:44 来源:尧图企业网站定制
后端前端Web框架开发工具【免费下载链接】redwoodRedwoodGraphQL项目地址https://gitcode.com/gh_mirrors/re/redwood点击查看免费下载导读本文围绕 Redwood 框架的 Render 部署方案展开完整讲解如何通过yarn rw setup deploy render一键生成 Render Blueprintrender.yaml、如何理解 web 端静态站点与 api 端 Node 服务的部署架构以及yarn rw deploy render side命令在后端执行的真实构建、迁移与启动逻辑。读完本文你将掌握从本地项目到 Render 云端含 Postgres 或 SQLite 数据库的完整部署路径并能自行排查部署中的常见问题。Render 部署方案概览Render 是一个统一云平台可以构建和运行各类应用与网站自带免费 SSL、全球 CDN、私有网络和 Git 自动部署能力并且内置数据库托管Postgres / SQLite。Redwood 官方文档将其归类为 Serverful 部署方案对应的部署说明位于 deploy/render.md。Redwood 的 Render 部署采用双服务 可选数据库的架构web 服务以static类型托管前端构建产物./web/dist并通过 rewrite 规则把 API 请求转发到 api 服务api 服务以node类型运行后端负责数据库迁移、数据迁移和 API 服务进程的启动数据库可选 PostgresRender 托管或 SQLite挂载持久化磁盘。这套架构由yarn rw setup deploy render自动生成模板源码位于 packages/cli/src/commands/setup/deploy/templates/render.js。快速部署Render tl;dr 流程如果只是想完整走一遍 Render 的部署流程包括 Postgres 或 SQLite 数据库官方推荐以下四步创建新项目yarn create redwood-app ./render-deploy初始化 Git 并推送远程仓库项目安装完成后执行git init、提交代码并将其作为新仓库推送到 GitHub 或 GitLabRender 从 Git 仓库拉取代码并自动部署。运行部署配置命令yarn rw setup deploy render使用--database标志选择数据库类型可选值为postgresql、sqlite或none不带数据库默认值为postgresql。按照 Render 官方 Redwood 部署文档完成剩余步骤创建 Blueprint、配置服务等。关于部署前的整体准备可先阅读仓库内的 deploy/introduction.md 了解部署模式选择。深入解析yarn rw setup deploy render命令参数与数据库选项setup deploy render的命令定义位于 packages/cli/src/commands/setup/deploy/providers/render.js。它通过 yargs 定义了一个关键选项选项别名可选值默认值说明--database-dnone、postgresql、sqlitepostgresql为 Render 部署选择数据库类型render.yaml 的生成逻辑getRenderYamlContent函数见 providers/render.js根据--database取值决定生成的配置none仅生成web api两个服务不包含任何数据库环境变量postgresql/sqlite先检查api/db/schema.prisma是否存在不存在则直接报错随后通过prisma/internals的getSchema与getConfig读取 Prisma 数据源的实际 provideractiveProvider若检测到的 provider 与--database一致则生成对应的数据库配置块若不一致命令会抛出错误并给出两条解决路径修改schema.prisma的provider后重新执行yarn rw prisma migrate dev与yarn rw setup deploy render --database 目标类型或改用当前 schema 实际的 provider 重跑yarn rw setup deploy render --database 检测到的类型。这一设计保证了生成的 YAML 与项目实际的数据库 provider 严格一致避免部署后因 DATABASE_URL 不匹配而失败。命令执行的四个任务handler函数providers/render.js使用 Listr 依次执行以下任务Adding render.yaml生成render.yaml写入项目根目录可用--force覆盖已存在的文件Updating API URL in redwood.toml调用updateApiURLTask(/.redwood/functions)把redwood.toml中[web]下的apiUrl更新为/.redwood/functions。该辅助函数的实现位于 packages/cli/src/commands/setup/deploy/helpers/index.js它会智能处理三种情况已存在apiUrl则替换、只有[web]则补充该行、都没有则追加整个[web]段添加健康检查函数写入api/src/functions/healthz.js内容为一个返回statusCode: 200的 Serverless 函数供 Render 探活使用打印部署提示输出后续操作指引前往 Render 控制台创建账户、阅读官方部署文档并提醒首次部署后需要更新render.yaml中的 rewrite 目标地址。render.yaml 模板详解模板源码templates/render.js展示了完整的 Blueprint 结构项目名取自当前目录名PROJECT_NAME path.basename(getPaths().base)。web 服务静态站点services: - name: ${PROJECT_NAME}-web type: web env: static buildCommand: corepack enable yarn install yarn rw deploy render web staticPublishPath: ./web/dist envVars: - key: SKIP_INSTALL_DEPS value: true routes: - type: rewrite source: /.redwood/functions/* # 首次部署后替换 destination 为 api 服务的真实地址 destination: replace_with_api_url/* - type: rewrite source: /* destination: /200.html关键点env: static表示托管纯静态文件产物目录为./web/dist构建命令会执行yarn rw deploy render web即只构建前端SKIP_INSTALL_DEPS: true用于跳过静态站点的重复依赖安装两条 rewrite 规则中/.redwood/functions/*负责把 API 请求转发到 api 服务/*兜底回退到200.html保证前端路由如 Redwood Router 的客户端路由在刷新时不会 404。api 服务Node 后端- name: ${PROJECT_NAME}-api type: web plan: free env: node region: oregon buildCommand: corepack enable yarn install yarn rw build api startCommand: yarn rw deploy render api关键点plan: free表示使用 Render 免费套餐免费实例会在空闲时休眠唤醒需要数秒region: oregon为默认部署区域startCommand启动时执行yarn rw deploy render api该命令会负责数据库迁移并启动 API 服务。Postgres 数据库envVars: - key: DATABASE_URL fromDatabase: name: ${PROJECT_NAME}-db property: connectionString databases: - name: ${PROJECT_NAME}-db region: oregon选择--database postgresql时会生成以上配置Render 自动创建名为${PROJECT_NAME}-db的 Postgres 数据库并把其connectionString注入 api 服务的DATABASE_URL环境变量。SQLite 数据库envVars: - key: DATABASE_URL value: file:./data/sqlite.db disk: name: sqlite-data mountPath: /opt/render/project/src/api/db/data sizeGB: 1选择--database sqlite时DATABASE_URL指向项目内相对路径的 SQLite 文件并挂载一块 1GB 的持久化磁盘mountPath对应api/db/data保证数据库文件在服务重建后仍然保留。SQLite 方案与仓库中禁用数据库类场景参见 how-to/disable-api-database.md思路互补适合轻量演示项目。首次部署后的必做操作更新 rewrite 目标setup命令生成的render.yaml中/.redwood/functions/*的destination被写为占位符replace_with_api_url/*。官方部署提示明确指出首次部署到 Render 后需要更新./render.yaml中的 rewrite 规则目标地址。具体做法是等 api 服务在 Render 上完成首次部署后将其真实地址形如https://my-redwood-project-api.onrender.com/*填入destination然后重新部署 web 服务。这一步完成后前端发往/.redwood/functions/*的 GraphQL 请求才能正确到达 api 服务。深入解析yarn rw deploy render sidedeploy render命令实现位于 packages/cli/src/commands/deploy/render.js它是构建、迁移和启动的组合命令接受一个必填的位置参数sideapi或web并支持两个布尔选项选项别名默认值说明--prisma-true是否执行数据库迁移prisma migrate deploy--data-migrate--dmtrue是否执行数据迁移yarn rw dataMigrate upapi 侧执行流程runApiCommandsPrisma 迁移默认开启执行prisma migrate deploy --schema api/db/schema.prisma这是生产环境的迁移命令与开发环境的migrate dev不同它只应用迁移而不生成新迁移数据迁移默认开启先检查根package.json中是否安装redwoodjs/cli-data-migrate开发依赖未安装时会打印警告并跳过并提示yarn add -D redwoodjs/cli-data-migrate该依赖缺失还可能导致部署内存问题已安装则执行yarn rw dataMigrate up。数据迁移相关说明可参考>赞分享后端前端Web框架开发工具【免费下载链接】redwoodRedwoodGraphQL项目地址https://gitcode.com/gh_mirrors/re/redwood点击查看免费下载相关推荐RedwoodJS 部署到 Render从 setup deploy render 到一键上线的完整实战指南RedwoodJS 部署到 Render从 setup deploy render 到一键上线的完整实战指南 Render 是一站式云平台可构建并运行应用与后端前端Web框架开发工具在 Render 上部署 Redwood从 setup 到上线的完整实战指南在 Render 上部署 Redwood从 setup 到上线的完整实战指南 本篇指南以 Redwood 官方文档version 6.x中《Deploy后端前端Web框架开发工具Redwood 应用部署到 Render 完整指南从 render.yaml 到 Git 自动部署Redwood 应用部署到 Render 完整指南从 render.yaml 到 Git 自动部署 Render 是一个统一云unified cloud后端前端Web框架开发工具上一篇SVG加载动画终极指南10种惊艳动态图标免费使用下一篇如何在浏览器中轻松捕获和下载网页视频资源创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价