迁移node.js应用程序从heroku到fly.io
#node #heroku #flyio

我最近将Node.js应用程序从Heroku迁移到Fly.io,这主要是由于成本降低。

此博客文章将涵盖迁移过程中的必要步骤。

先决条件

  • Heroku应用程序运行

  • 使用确切的版本来适用于套件中的依赖项和dev依赖项。

  • 在Dockerfile,Package.json和GitHub Actions WorkFlow

  • 中使用相同的node.js版本
  • 使用API​​网关或自定义域进行服务,因此Web应用程序和移动应用不会因更改服务的URL而受到影响

迁移步骤

  • 迁移环境变量和秘密

  • 使用以下命令迁移Postgres数据库(不需要数据库配置选项中的ssl字段)

fly secrets set HEROKU_DATABASE_URL=$(heroku config:get DATABASE_URL)

fly ssh console
apt update && apt install postgresql-client
pg_dump -Fc --no-acl --no-owner -d $HEROKU_DATABASE_URL | pg_restore --verbose --clean --no-acl --no-owner -d $DATABASE_URL
exit

fly secrets unset HEROKU_DATABASE_URL
  • 如果使用了REDIS数据库

  • 在github操作工作流程中包括部署步骤

参考