找回密码
 立即注册
首页 业界区 业界 SQLCipher数据迁移到PostgreSql详细攻略

SQLCipher数据迁移到PostgreSql详细攻略

获弃 2025-9-23 12:48:09
步骤一、安装Docker


  • Windows11 安装Docker客户端教程:自己百度一下。
步骤二、SQLCipher解密,转换为Sqlite3


  • 访问官网进行下载
  • 使用DB Browser (SQLCipher) 客户访问数据库文件后,点开菜单栏 “工具” --> "设置加密",密码置空后,即可进行解密,自动将SQLCipher转换为Sqlite3。
  • 注意:这个解密的过程耗时比较长,请耐心等待;
步骤三、将Sqlite中的数据迁移到PostgreSql中

1. Docker安装PostgreSql
  1. docker run --name my_postgres \
  2.   -e POSTGRES_PASSWORD=mysecretpassword \  # 设置超级用户密码,务必修改
  3.   -p 5432:5432 \                           # 映射主机端口 5432 到容器端口 5432
  4.   -v pgdata:/var/lib/postgresql/data \     # 使用命名卷 pgdata 持久化数据
  5.   -d \                                     # 后台运行容器
  6.   postgres                                 # 使用官方镜像
复制代码

  • -e POSTGRES_PASSWORD=mysecretpassword: ​务必修改​ mysecretpassword为你自己设定的强密码,这是默认的超级用户 postgres的密码。
  • -v pgdata:/var/lib/postgresql/data: 这里的 pgdata是 Docker 管理的命名卷(Named Volume)​的名称。如果该卷不存在,Docker 会自动创建它。数据会存储在 Docker 的管理区域(例如 /var/lib/docker/volumes/),与容器生命周期分离,从而实现持久化。
  • 使用 docker volume ls可以查看所有已创建的命名卷。
  • 增加 --restart=unless-stopped 可以自动启动容器,除非手动停止。
2. 拉取pgloader镜像
  1. docker pull ghcr.io/dimitri/pgloader:latest
复制代码
3. 准备迁移脚本 migration.load
  1. LOAD DATABASE
  2.     FROM sqlite:////data/main_data.db
  3.     INTO postgresql://postgres:123456@host.docker.internal:5432/main
  4. WITH include drop, create tables, create indexes, reset sequences, foreign keys,
  5.      workers = 8, concurrency = 1
  6. ALTER SCHEMA 'main' RENAME TO 'public'
  7. BEFORE LOAD DO
  8. $$ create schema if not exists public; $$;
复制代码
<strong>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册