步骤一、安装Docker
- Windows11 安装Docker客户端教程:自己百度一下。
步骤二、SQLCipher解密,转换为Sqlite3
- 访问官网进行下载
- 使用DB Browser (SQLCipher) 客户访问数据库文件后,点开菜单栏 “工具” --> "设置加密",密码置空后,即可进行解密,自动将SQLCipher转换为Sqlite3。
- 注意:这个解密的过程耗时比较长,请耐心等待;
步骤三、将Sqlite中的数据迁移到PostgreSql中
1. Docker安装PostgreSql
- docker run --name my_postgres \
- -e POSTGRES_PASSWORD=mysecretpassword \ # 设置超级用户密码,务必修改
- -p 5432:5432 \ # 映射主机端口 5432 到容器端口 5432
- -v pgdata:/var/lib/postgresql/data \ # 使用命名卷 pgdata 持久化数据
- -d \ # 后台运行容器
- 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镜像
- docker pull ghcr.io/dimitri/pgloader:latest
复制代码 3. 准备迁移脚本 migration.load
- LOAD DATABASE
- FROM sqlite:////data/main_data.db
- INTO postgresql://postgres:123456@host.docker.internal:5432/main
- WITH include drop, create tables, create indexes, reset sequences, foreign keys,
- workers = 8, concurrency = 1
- ALTER SCHEMA 'main' RENAME TO 'public'
- BEFORE LOAD DO
- $$ create schema if not exists public; $$;
复制代码 <strong>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |