---
title: Desktop 标准行情初始化包导出
doc_type: bootstrap-guide
domain: data-import
keywords:
  - 初始化包
  - 行情导出
  - MySQL
  - desktop 导入
summary: 从 MySQL 导出桌面端可直接导入的多来源日线数据初始化包。
when_to_read:
  - 需要从已有 MySQL 数据生成标准初始化包
  - 要准备可交付给桌面端导入的历史行情数据
read_next:
  - ./mysql-dump-desktop-import.md
  - ./README.md
---
# Desktop 标准行情初始化包导出

脚本：`scripts/export_mysql_standard_init_package.py`

用途：从本地 Docker MySQL（默认 `127.0.0.1:3306/stock_assistant`）读取 A 股多来源日线数据，生成 desktop 可导入的按交易日拆分 `api_*` 初始化包。

如果你的输入是 `mysqldump` 导出的 `.sql/.sql.gz`，请使用文档：

- [MySQL dump 转 Desktop 初始化包](./mysql-dump-desktop-import.md)

## 依赖

```bash
pip install pymysql
```

## 快速开始

```bash
cd ai-stock-assistant-desktop-tauri
python3 scripts/export_mysql_standard_init_package.py \
  --host 127.0.0.1 \
  --port 3306 \
  --user root \
  --password 123456 \
  --database stock_assistant \
  --start-date 20250312 \
  --end-date 20260312
```

默认会在 `output/init-packages/` 生成：

- `desktop-standard-init-<start>-<end>-<timestamp>/manifest.json`
- `desktop-standard-init-<start>-<end>-<timestamp>/days/<trade-date>/api_tushare_stk_factor_pro.csv`
- 回退时还可能生成 `api_tushare_daily_basic.csv`
- `desktop-standard-init-<start>-<end>-<timestamp>.tar.gz`

推荐将 `.tar.gz` 或 `.tgz` 压缩包直接交给 desktop 导入。

## 包结构

```text
desktop-standard-init-<start>-<end>-<timestamp>/
  manifest.json
  days/
    2025-03-12/
      api_tushare_stk_factor_pro.csv
    2025-03-13/
      api_tushare_stk_factor_pro.csv
```

`manifest.json` 会逐日列出文件路径、`tradeDate`、`dataType`、`rows` 和 `sha256`，desktop 导入时会逐文件校验并按日期顺序导入到对应 provider 表。

## 字段映射说明

- 主优先读取：`api_tushare_stk_factor_pro`
- 无数据时仅回退导出：`api_tushare_daily_basic`
- 单位统一：
  - `volume` 转为“股”
  - `amount` 转为“元”
  - `total_mv/circ_mv` 转为“元”

## 兼容规则

- `trade_date` 输出为 `YYYY-MM-DD`
- `close_qfq` 仅在 `api_tushare_stk_factor_pro` 可得时输出；`api_tushare_daily_basic` 回退包不再伪造跨 API 拼接值
- desktop 导入后统一通过 provider 查询层消费，并显式返回 `source / sourceProvider`
