Meetily 如何将已有安装数据库迁移到 Docker 部署的 meetily-backend 服务【免费下载链接】meetilyPrivacy first, AI meeting assistant with 4x faster Parakeet/Whisper live transcription, speaker diarization, and Ollama summarization built on Rust. 100% local processing. no cloud required. Meetily (Meetly Ai - https://meetily.ai) is the #1 Self-hosted, Open-source Ai meeting note taker for macOS Windows. Understand How to write meeting minutes项目地址: https://gitcode.com/GitHub_Trending/me/meetilyMeetily 的 backend 目录提供了一组 Docker 部署脚本。如果你之前通过 Homebrew 安装、手动部署或本地开发方式跑过 meetily-backend机器上会留有一个 SQLite 数据库文件meeting_minutes.db存放会议与转录记录。切换到 Docker 部署后这个数据不会自动进入容器需要先把已有数据库迁移到 Docker 版本使用的backend/data/meeting_minutes.db。本文以仓库 backend 中的setup-db脚本为主路径说明如何完成这次迁移并在启动meetily-backend服务后核对数据是否可用。适用环境macOS/Linux使用setup-db.sh或run-docker.sh setup-db子命令WindowsPowerShell使用setup-db.ps1或run-docker.ps1 setup-db子命令已安装 Docker DesktopWindows/Mac或 Docker EngineLinux。迁移的原理与目标位置先明确数据要迁到哪里以及怎么迁。根据 docker-compose.ymlmeetily-backend服务做了两件事把宿主机上的backend/data目录挂载进容器./data:/app/data注释标明该目录由 setup-db.sh 创建通过环境变量指定数据库路径DATABASE_PATH/app/data/meeting_minutes.db。也就是说只要把旧的meeting_minutes.db放到backend/data/meeting_minutes.db容器启动后读写的就是这个文件。迁移脚本做的就是这件事而且它采用的是复制方式cp/Copy-Item不会改动或删除源数据库文件原来的安装可以原样保留。脚本在复制前会先做有效性检查并打印数据库信息路径、大小、修改时间以及meetings、transcripts两张表的记录数复制完成后会输出 Database Setup Complete Database location: backend/data/meeting_minutes.db You can now start the services with: ./run-docker.sh compose up -d看到Database Setup Complete和数据库位置提示说明文件已经就位可以进入启动服务一步。准备条件已获取 meetily 仓库源码并在仓库的backend目录下操作macOS/Linux 上除--fresh模式外宿主机需要安装sqlite3命令行工具。脚本会用sqlite3 db SELECT name FROM sqlite_master WHERE typetable LIMIT 1;验证文件是否为合法 SQLite 数据库未安装时脚本会报错sqlite3 is required for database operations but not installed并以退出码 1 结束见 setup-db.shWindows 上的setup-db.ps1只做文件级校验扩展名为.db且非空文件不依赖sqlite3。执行迁移macOS/Linux 主路径进入backend目录后有三种等价入口run-docker.sh 的setup-db子命令只是调用同目录下的setup-db.sh因此下面给出的命令都可以直接执行。方式一自动探测并迁移旧数据库在脚本的默认搜索范围内时使用cd backend ./run-docker.sh setup-db --auto--auto模式不弹交互提示按顺序探测候选位置命中第一个有效数据库就显示其信息并复制如果都没找到则创建一个全新的空数据库适合首次部署不是迁移。脚本探测的位置见 README 的 Database Migration 一节/opt/homebrew/Cellar/meetily-backend/*/backend/meeting_minutes.db $HOME/.meetily/meeting_minutes.db $HOME/Documents/meetily/meeting_minutes.db $HOME/Desktop/meeting_minutes.db ./meeting_minutes.db $SCRIPT_DIR/data/meeting_minutes.dbHomebrew 安装产生的数据库/opt/homebrew/Cellar/meetily-backend/属于典型命中场景。方式二交互式选择cd backend ./run-docker.sh setup-db交互模式会先列出所有找到的数据库并编号你输入序号后脚本打印该库的信息会议数、转录数确认Use this database? (Y/n)后才复制。没找到任何数据库时交互菜单提供三个选项创建全新数据库、指定自定义路径、退出。方式三显式指定源数据库路径旧数据库不在默认搜索范围内例如手动部署时放在了别处时使用--db-path后面是你要迁移的源数据库的完整路径cd backend ./setup-db.sh --db-path /path/to/meeting_minutes.db/path/to/meeting_minutes.db需要替换为你实际数据库文件的路径例如之前手动安装留下的某个meeting_minutes.db。脚本会先校验它是否为有效 SQLite 数据库校验失败会报Invalid database file: 路径并退出。WindowsPowerShell分支同样的功能由 setup-db.ps1 提供参数为 PowerShell 风格cd backend # 自动探测并迁移 .\run-docker.ps1 setup-db --auto # 或直接调用脚本 .\setup-db.ps1 -Auto # 指定源数据库路径 .\setup-db.ps1 -DbPath C:\path\to\meeting_minutes.dbWindows 脚本的默认探测位置为.\meeting_minutes.db、%USERPROFILE%\.meetily\meeting_minutes.db、%USERPROFILE%\Documents\meetily\meeting_minutes.db、%USERPROFILE%\Desktop\meeting_minutes.db并在存在HOMEBREW_PREFIX环境变量时追加 Homebrew 路径。完成后同样提示用.\run-docker.ps1 compose up -d启动服务。关于--freshWindows 为-Fresh它会跳过搜索、直接创建全新数据库且如果backend/data/meeting_minutes.db已存在会先删除再重建。这个选项面向全新安装不是迁移路径——对已有数据要迁移时不要使用否则会把data目录下已有的数据库文件删掉。启动服务并验证数据迁移完成后启动两个服务Whisper 服务器 meetily-backendcd backend ./run-docker.sh compose up -d验证分两步容器健康检查。meetily-backend服务在 docker-compose.yml 中配置了健康检查curl -f http://localhost:5167/get-meetings。该接口对应 app/main.py 中的GET /get-meetings端点返回全部会议的id与title列表。人工核对。服务起来后访问http://localhost:5167/get-meetings如果之前迁移前脚本打印的Meetings: N对应的那些会议标题出现在返回列表里说明容器读到的就是迁移过去的数据库需要查看单个会议详情时可以用GET /get-meeting/{meeting_id}会议 ID 来自上面的列表。交互式 API 文档在http://localhost:5167/docs。迁移过程中常见的失败信号也都写在脚本输出里Invalid database file: 路径——源文件不存在或不是有效 SQLite 数据库macOS/Linux 下由sqlite3校验判定sqlite3 is required for database operations but not installed——宿主机缺少sqlite3工具需要先安装或改用--fresh走全新安装会放弃迁移交互模式中输错选项号会报Invalid choice。限制说明迁移是一次性文件复制目标位置固定为backend/data/meeting_minutes.db源数据库文件保持原样自动探测只覆盖上面列出的固定路径列表数据库放在其他位置时必须显式传--db-pathDocker 部署本身对资源有要求README 的 Important Notes 指出容器内存不足时会出现Dropped old audio chunk X due to queue overflow日志和转录缺失建议给容器分配 8GB RAM。这与迁移无关但迁移后正式使用时值得留意。数据核对无误后后续继续用./run-docker.sh status查看服务状态、./run-docker.sh logs --service app --follow跟踪 meetily-backend 日志即可backend/data目录随仓库目录持久化容器重建不会丢失这些数据。【免费下载链接】meetilyPrivacy first, AI meeting assistant with 4x faster Parakeet/Whisper live transcription, speaker diarization, and Ollama summarization built on Rust. 100% local processing. no cloud required. Meetily (Meetly Ai - https://meetily.ai) is the #1 Self-hosted, Open-source Ai meeting note taker for macOS Windows. Understand How to write meeting minutes项目地址: https://gitcode.com/GitHub_Trending/me/meetily创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考