环境说明

  • 使用1Panel部署

  • 蓝空图床默认使用最新版本

  • 采用 PostgreSQL 数据库 (不推荐用Mysql,CPU消耗极高)

使用1Panel搭建的应用,可在已安装应用中进入安装目录

image-20240825154738502

相关文件存储目录为:

/opt/1panel/apps/lsky-pro/lsky-pro/data

image-20240825150518860

图片文件路径为

/data/storage/app/uploads

image-20240825154645045

1Panel迁移步骤

可直接使用1Panel提供的应用及数据库备份功能进行备份,导入备份即可,下载下来的压缩包导入时无需解压

需要先创建一个空的数据库,数据库创建好后执行图床安装程序选择刚才创建的数据库

image-20240827134103664

然后导入备份,上传备份好的数据即可

image-20240827134235946

实际测试时,由于源数据库名与目标数据库名称不相同,所以导入后有两个数据库,最终导入到了目标数据库里

image-20240827134426320

数据库导入好后再导入应用备份

image-20240827130958922

导入后如下所示

image-20240827134658439

导入后我发现原来的文件并没有导入成功,也不知道是bug还是自己操作有误,登录后能看到预览图,但是点击图片还是原来的网址,改为当前服务ip后提示404,索性直接将备份包解压后上传。

image-20240827142914375

应用还原后注意检查下data/.env文件的数据库配置是否正确,这里我由于源数据库名与目标数据库名不一致,导致导入后无数据,检查后发现数据导入到了目标数据库里,配置的数据库名却是导入过来的源数据库名,所以需要改一下使用的数据库名称。

image-20240827134936473

手动迁移步骤

  1. 备份源数据中的data/storage文件夹和data/public目录下的缩略图文件夹thumbnails

  2. 备份源数据中的data/.env文件和installed.lock文件。

  3. 在目标数据环境中安装好Lsky Pro以及数据库。

    应用安装好以后将目标容器停止,待数据库迁移完以后再启动。

  4. 数据库迁移

​ 可以使用Navicat的数据同步功能进行迁移,也可直接执行sql脚本。

image-20240827122505983

选择数据库源及目标

image-20240827122738368

点击比较,对比两个数据库之间的差异

image-20240827123645830

对差异数据选择插入或更新,例如此处我两个环境的超级管理员账号密码不相同,我更新为原来的账号密码

image-20240827123941603

点击下一步,检查sql语句,确认无误后开始执行

image-20240827124130428

执行完成后显示同步结果

image-20240827124224684

数据类型为SQLite时无需部署数据库,备份database.sqlite文件即可。

image-20240827121403484

  1. 修改数据库配置信息

打开备份好的源数据中的.env文件,修改其中数据库的配置信息。注意文件下载下来可能为env不包含点image-20240827124843208

  1. 修改完.env文件后,将先前备份的文件和文件夹一起替换至目标文件和文件夹。
  2. 替换完以后再启功目标容器,打开兰空图床的登录界面,使用原来的用户名和密码进行登录即可。

效果展示

所有图片均可正常显示

image-20240827135521294

使用当前IP访问图片

image-20240827143212180

参考

【折腾笔记】兰空图床数据迁移