You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Strapi中Content-Type Builder的集合类型迁移至另一Strapi源码?

迁移Strapi Content-Type Builder中的集合类型到另一个项目

下面是几种可行的迁移方案,覆盖手动到自动化的场景:

1. 手动复制核心配置文件(全版本通用)

Strapi的集合类型定义全部存储在项目源码的特定目录中,直接复制对应文件即可完成迁移:

  • 复制源项目中 src/api/[集合类型名称] 整个目录到目标项目的同路径下,每个集合类型对应一个独立的文件夹,其中包含schema.json(核心结构定义)、路由、控制器、服务等自定义代码(如果有)。
  • 如果使用了自定义组件,同时复制 src/components/ 目录下的对应组件文件夹到目标项目。
  • 完成复制后,重启目标项目的Strapi服务,系统会自动识别新的集合类型。

2. 使用Strapi内置的导出/导入工具(v4及以上版本)

Strapi v4提供了专门的命令行工具,支持单独导出内容类型结构(不含数据):

  • 在源项目根目录执行命令:
    strapi export --no-data
    
    执行完成后会生成一个压缩包(默认命名为 export_xxxx.tar.gz)。
  • 将压缩包复制到目标项目的根目录,执行导入命令:
    strapi import --file=export_xxxx.tar.gz --no-data
    
  • 重启目标项目的Strapi服务,即可完成集合类型的迁移。

3. 自定义脚本自动化迁移(适合批量场景)

如果需要迁移大量集合类型,可以编写简单的Node脚本实现自动化复制:

  • 脚本核心逻辑:遍历源项目的 src/api/ 和 src/components/ 目录,读取所有 schema.json 文件及相关自定义代码文件,复制到目标项目的对应路径。
  • 示例逻辑片段(仅作参考):
    const fs = require('fs-extra');
    const path = require('path');
    
    const sourceDir = '/path/to/source-strapi-project/src';
    const targetDir = '/path/to/target-strapi-project/src';
    
    // 复制api目录下的集合类型
    fs.copySync(path.join(sourceDir, 'api'), path.join(targetDir, 'api'));
    // 复制自定义组件
    fs.copySync(path.join(sourceDir, 'components'), path.join(targetDir, 'components'));
    
  • 执行脚本后重启目标项目即可。

注意事项

  • 确保源项目和目标项目的Strapi版本一致,避免因schema结构差异导致迁移失败。
  • 如果集合类型使用了第三方插件(如富文本编辑器、自定义字段),需确保目标项目已安装并配置相同的插件。
  • 权限配置存储在数据库中,迁移集合类型后需要手动重新设置权限,或通过数据迁移工具导出/导入权限数据。

内容的提问来源于stack exchange,提问作者Gray Tran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:03:20