恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Ydisks闲鱼助手多数据库部署指南:SQLite/MySQL/PostgreSQL选型与迁移
首页
资讯中心
/
Ydisks闲鱼助手多数据库部署指南:SQLite/MySQL/PostgreSQL选型与迁移
Ydisks闲鱼助手多数据库部署指南:SQLite/MySQL/PostgreSQL选型与迁移
发布时间:2026/10/11 10:02:35
【免费下载链接】Ydisks-Xianyu-Helper闲鱼多账号自动发货、消息回复系统——基于 Go 与 React 构建项目地址https://gitcode.com/gh_mirrors/yd/Ydisks-Xianyu-Helper点击查看免费下载Ydisks闲鱼助手是一款面向虚拟商品卖家的闲鱼多账号自动发货、消息回复系统基于 Go 与 React 构建。它原生支持SQLite、MySQL、PostgreSQL 三种数据库一条配置即可切换并在应用启动时自动执行内置迁移。本指南帮你完成数据库选型、连接配置与安全迁移从本机试用到 Docker 生产部署都能直接上手。一、如何选型SQLite / MySQL / PostgreSQL 快速对照三种数据库由连接 URL 的协议头scheme决定应用启动时自动识别并完成建表官方推荐如下你的场景推荐数据库理由本机试用、单人低频使用SQLite零安装数据库就是一个文件默认路径data/xianyu_data.dbDocker 生产部署PostgreSQL 17官方 compose.yml 已内置服务、持久化卷和健康检查已有 MySQL 运维体系MySQL 8可复用现有备份、监控和权限管理多人协作或长期运行PostgreSQL / MySQL更适合并发写入、独立备份与运维连接优先级为DATABASE_URL环境变量 -db-url命令行参数 -db参数解析逻辑见 internal/db/db.go。完整中文文档见 docs/wiki/部署与数据库.zh-CN.md。二、SQLite 最快上手一条命令零配置适合开发调试或个人单机使用无需安装任何数据库服务go run ./cmd/server -db data/xianyu_data.db -addr :59188 仅本机使用时建议改为-addr 127.0.0.1:59188避免监听全部网卡。也可以显式指定 SQLite URLDATABASE_URLsqlite://data/xianyu_data.db ./xianyu-server备份要点备份前先停止服务或使用 SQLite 在线备份工具不要直接复制正在写入的 WAL 数据库主文件。恢复时需同时恢复数据库文件和原有XIANYU_DATA_KEY密钥否则加密数据无法解密。三、MySQL 连接步骤接入现有运维体系先创建UTF-8utf8mb4数据库和最小权限账号再通过 URL 交给应用DATABASE_URLmysql://user:URL编码后的密码tcp(db.example:3306)/xianyu \ ./xianyu-server -addr :59188应用会自动补齐所需的 MySQL 连接参数如parseTime。密码中出现、:、/等字符时必须 URL 编码。数据库账号只授予该应用库的必要权限即可。四、PostgreSQL 生产部署Docker Compose 推荐方案这是官方默认的生产路径——默认 compose.yml 已把 PostgreSQL 17 服务、健康检查、数据卷全部配置好复制配置cp .env.example .env编辑 .env.example至少设置POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD、XIANYU_DATA_KEY、XIANYU_ADMIN_PASSWORD为XIANYU_DATA_KEY生成一次长期固定的随机值例如openssl rand -base64 48后续升级不要更换启动并查看状态docker compose up -d、docker compose ps、docker compose logs -f app浏览器打开http://服务器地址:59188首次访问会显示首次设置管理员密码页面填写两次不少于 8 个字符的密码即可创建admin账号外部 PostgreSQL 服务则直接提供 URLDATABASE_URLpostgres://user:URL编码后的密码db.example:5432/xianyu?sslmoderequire \ ./xianyu-server -addr :59188仅在受信任的本机网络可考虑sslmodedisable公网或跨网络部署应启用 TLS。⚠️安全提示源码与 Compose 默认监听全部接口0.0.0.0:59188。未初始化的实例没有预共享密钥最先连上管理口的客户端可以创建管理员。公网部署务必在防火墙、安全组或反向代理层限制访问或预先设置XIANYU_ADMIN_PASSWORD。五、数据库迁移如何自动完成很多人担心换库要手动建表——在这里完全不需要迁移脚本按方言分目录内置于程序共51 个迁移版本位于 internal/db/migrations/sqlite/、mysql/、postgres/各一份内容一一对应应用启动时通过 goose 嵌入式执行迁移新库自动建全表旧库自动升到最新版本三种库的 SQL 语法差异如 UPSERTON CONFLICTvsON DUPLICATE KEY UPDATE、自增主键回读方式由 internal/db/dialect.go 中的方言适配器统一封装业务代码无感知如果你想在正式启用前验证某个数据库实例是否可用可以运行仓库自带的 9 步校验工具迁移 核心 CRUD upsert/布尔/自增主键路径go run ./cmd/dbverify sqlite://data/verify.db go run ./cmd/dbverify mysql://user:passtcp(host:3306)/db?parseTimetruelocLocalmultiStatementstrue go run ./cmd/dbverify postgres://user:passhost:5432/db?sslmodedisable工具说明见 cmd/dbverify/main.go。多数据库回归的完整测试手册见 docs/architecture/multidb-test-runbook.md。六、换库迁移与安全升级的正确姿势跨库迁移如 SQLite → PostgreSQL数据库文件无法直接拷贝正确做法是借助应用自身——在新库启动实例完成建表再通过 Web 管理页导入导出/重新配置账号与自动化规则逐步将数据切换到新库。同库升级版本请遵循这个顺序备份数据库PostgreSQL 示例docker compose exec -T postgres pg_dump -U $POSTGRES_USER -d $POSTGRES_DB ydisks-backup.sql和.env拉取/构建新镜像docker compose up -d查看日志确认迁移成功登录检查账号、自动化任务是否完整若迁移失败停止继续操作从备份恢复七、常见问题速查改了COMPOSE_PROJECT_NAME后数据消失了卷名前缀随之变化新卷是空的。升级时请保留原.env。MySQL 迁移报错连接串记得带multiStatementstruegoose 多语句迁移需要它。忘记管理员密码无浏览器环境可用 CLIgo run ./cmd/server -init-admin -db data/xianyu_data.db -admin-password 强密码详见 cmd/server/main.go。只想验证不动生产库用 docker-compose.functional.yml 一键拉起本地 MySQL 8.4 / PostgreSQL 17 做功能验证。总结本地试玩选 SQLiteDocker 生产选 PostgreSQL已有 MySQL 体系直接接入——连接串一改迁移自动跑完把精力留给闲鱼自动发货业务本身吧 赞分享【免费下载链接】Ydisks-Xianyu-Helper闲鱼多账号自动发货、消息回复系统——基于 Go 与 React 构建项目地址https://gitcode.com/gh_mirrors/yd/Ydisks-Xianyu-Helper点击查看免费下载相关推荐Shiori 多数据库配置指南SQLite 到 MySQL/PostgreSQL 的迁移与选型Shiori 多数据库配置指南SQLite 到 MySQL/PostgreSQL 的迁移与选型 Shiori 是一款用 Go 编写的轻量书签管理工具默认使用后端如何免费安装Ydisks闲鱼助手Windows/macOS/Linux桌面端部署指南如何免费安装Ydisks闲鱼助手Windows/macOS/Linux桌面端部署指南 Ydisks闲鱼助手Ydisks Xianyu Helper是一个Testcontainers Python等待策略详解确保容器就绪的终极方案Testcontainers Python等待策略详解确保容器就绪的终极方案 Testcontainers Python是一个提供友好API来运行Docker测试开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考