---
title: 基于 MySQL 全量 Dump 生成 Desktop 导入包
doc_type: bootstrap-guide
domain: data-import
keywords:
  - MySQL dump
  - Desktop 导入包
  - 初始化包
  - 数据转换
summary: 把 MySQL 全量 dump 转成桌面端可直接导入的多来源日线数据初始化包。
when_to_read:
  - 手里只有 mysqldump 备份，需要转成桌面端初始化包
  - 需要批量准备历史行情导入包
read_next:
  - ./mysql-standard-init-package.md
  - ./README.md
---
# 基于 MySQL 全量 Dump 生成 Desktop 导入包

脚本：`scripts/import_mysql_dump_to_desktop_package.sh`

用途：将 `mysqldump` 导出的 `stock_assistant` 全量数据包（`.sql`/`.sql.gz`）转换为 desktop 端可直接导入的初始化包（`.tar.gz`）。

## 依赖

- 本地可用的 Docker
- 可连接的 MySQL 容器（默认 `mysql-no-binlog`）
- `python3`（脚本会调用 `scripts/export_mysql_standard_init_package.py`）
- Python 依赖 `pymysql`：

```bash
pip install pymysql
```

## 一键执行

在仓库根目录执行：

```bash
cd ai-stock-assistant-desktop-tauri
bash scripts/import_mysql_dump_to_desktop_package.sh \
  --dump-file ../output/db-dumps/stock_assistant_full_latest.sql.gz
```

默认行为：

1. 在 Docker MySQL 中创建临时数据库（如 `desktop_import_20260314_140000`）
2. 将 dump 全量导入临时库
3. 自动探测 `trade_date` 范围，导出多来源日线数据初始化包
4. 输出到 `<repo>/output/init-packages/`
5. 生成 `desktop-standard-init-from-dump_latest.tar.gz` 软链接
6. 默认清理临时数据库

## 常用参数

```bash
--start-date 20250101        # 指定导出起始日期（可选）
--end-date 20260314          # 指定导出结束日期（可选）
--package-name desktop-init-manual-20260314
--output-dir /custom/path
--keep-temp-db               # 调试时保留临时数据库
```

## 产物说明

成功后会得到：

- `desktop-standard-init-*.tar.gz`：desktop 导入包
- `desktop-standard-init-from-dump_latest.tar.gz`：最新包软链接
- `<archive>.from-dump.meta`：导入构建元信息（来源 dump、日期范围、临时库名等）

## 在 Desktop 中导入

1. 打开 desktop 客户端
2. 进入 `设置 -> 导入`
3. 选择上一步生成的 `.tar.gz` 文件
4. 点击“开始导入数据”

desktop 端会校验 `manifest.json` 与文件哈希，并按交易日顺序导入对应的多来源日线数据表。
