如何从Coolify Cloud导出并取回PostgreSQL数据库以迁移至自托管服务器?
解决方案
1. 取回Coolify Cloud上的数据库备份文件
方法一:终端复制备份内容
进入Coolify Cloud中PostgreSQL容器的内置终端,执行cat 你的备份文件名.sql,将终端输出的全部内容复制,在本地新建一个.sql文件并粘贴保存即可。
方法二:直接本地导出(无需服务器存文件)
如果Coolify支持临时端口转发功能,将PostgreSQL容器的5432端口转发到本地的某个端口(比如5433),然后在本地终端执行:
pg_dump -h localhost -p 5433 -U 数据库用户名 数据库名称 > local_backup.sql
备份文件会直接生成在本地,无需在Coolify Cloud服务器留存。
2. 配置PostgreSQL容器允许外部连接
Coolify Cloud作为托管服务,出于安全默认不会开放PostgreSQL容器的公网访问权限。如果需要临时外部连接(比如pgAdmin),可以通过以下方式:
- 使用Coolify提供的临时端口转发功能(部分托管平台内置),将容器的5432端口映射到本地端口,再用pgAdmin连接本地转发的端口即可。
- 不建议长期暴露容器到公网,这会带来安全风险,完成操作后立即关闭端口转发。
3. 其他数据库迁移方法
方法一:直接跨实例数据同步
在自托管服务器上创建好空的目标PostgreSQL数据库,通过端口转发将Coolify Cloud的PostgreSQL端口映射到本地,然后在本地执行:
pg_dump -h localhost -p 本地转发端口 -U 源用户名 源数据库名 | psql -h 自托管服务器IP -p 5432 -U 目标用户名 目标数据库名
这条命令会直接将源数据库的数据同步到目标数据库,跳过本地备份文件的步骤。
方法二:利用Coolify的迁移工具
检查Coolify Cloud的管理界面是否提供应用/数据库迁移功能,部分版本支持一键打包应用配置和数据库快照,直接导入到自托管的Coolify实例中。
方法三:第三方存储中转
如果Coolify Cloud支持将备份文件上传到第三方存储服务(如S3、FTP),可以在Coolify后台配置备份存储目标,将备份文件上传到你自己控制的存储服务,再从该服务下载到本地后导入自托管实例。
内容的提问来源于stack exchange,提问作者BibDev
相关产品推荐
相关产品推荐

