目 录CONTENT

文章目录

bitwarden数据迁移至PostgreSql

林汐~
2023-12-05 / 0 评论 / 0 点赞 / 91 阅读 / 686 字 / 正在检测是否收录...

bitwarden

个人密码库,这是我玩nas之后最想推荐的一个东西,今天就来分享一下

之前使用bitwarden都是网上线程的文章照抄,导致邮箱无法使用、数据库也只是本地的sqlLite很不方便。
前端时间突然想优化一下了,就去翻了官方文档

docker-compose

废话少说,直接放docker-compose.yml

version: "3.9"
services:
  master:
    image: docker.io/vaultwarden/server:1.27.0
    container_name: bitwarden
    volumes:
      - ./data:/data:rw
    ports:
      - 7032:80
    environment:
      - TZ=Asia/Shanghai
      - DATABASE_URL=postgresql://root:XXXXXXXXXXXX@172.16.0.130:5432/bitwarden
      - SERVER_ADMIN_EMAIL=XXXXXXXXX@163.com # 系统初始化登录账号
      - SIGNUPS_ALLOWED=true # 是否开放注册
      - INVITATIONS_ALLOWED=true # 是否允许邀请
      - WEBSOCKET_ENABLED=true
      - ADMIN_TOKEN=XXXXXXXXXXXXXXXXXXXXX随机生成XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - DOMAIN=https://pwd.taotaojs.top
      - SMTP_HOST=smtp.163.com
      - SMTP_FROM=XXXXXXXXXXXXXXXX@163.com
      - SMTP_PORT=465
      - SMTP_SECURITY=force_tls
      - SMTP_USERNAME=XXXXXXXXXXXXXXXXXX@163.com
      - SMTP_PASSWORD=XXXXXXXXXXXXXXXXXX
    networks:
      - basenetwork
networks:
  basenetwork:
    external: true

说明

我将这个容器和postgresql容器放到同个网络下了,所以可以直接使用172.16这种内网地址直连数据库
另外SMTP服务要自己去163或者其他平台申请,很简单的

启动这个docker-compose之后,我们就可以看到库中已经自动生成好表结构了

图 0

但是这个时候库中的数据都是空白的

迁移数据

我们将原来数据文件下载下来

图 1

然后用数据库连接工具连接

图 2

直接输入连接名和选择数据库文件就可以了

图 3

点击测试连接,是通的(毕竟是本地

图 4

打开就可以看到所有存有线上数据的表了

图 6

然后只要将这个库中的数据导出为sql,放到新的PostgreSql库中运行即可。
不过在迁移过程过程中遇到了几处问题:

数据库迁移遇到的问题

外键约束

要先将users和organizations中的数据导入,才能导入其他数据

16进制字符串问题

users的insert语句中,password_hash和salt字段都是十六进制形式。而sqlLite导出来的会是【X’十六进制字符串’】这种形式,导入到PostgreSql中,我们要将这个改成【E’\x十六进制字符串’】即可

boolean类型数据问题

PostgreSql的boolean类型无法识别1或0,只能将其改成true或false

全都导入好之后,网页就可以直接登录进去了,想要尝试一下也可以访问 https://pwd.taotaojs.top 注册玩玩。虽然库在我手中,但是他全都是死加密的,所以还是相当安全的。

End。

0

评论区