开发第三方数据迁移插件
Mog 提供了一个数据迁移导入的接口,你可以通过这个接口来开发一个迁移插件,将你的数据迁移到 Mog。
目前支持以下数据的迁移:
- 文章 -
posts
- 页面 -
pages
- 评论 -
comments
- 分类 -
categories
- 用户信息 -
user
- 友链 -
friends
⚠️
用户信息中没有导入密码的功能,在导入信息后,Mog 将为您重新生成一个临时密码,您可以在控制台仪表盘中更改它
数据
interface MigrateData {
posts: MigratePost[];
pages: MigratePage[];
user: MigrateUser;
friends: MigrateFriend[];
comments: MigrateComment[];
categories: MigrateCategory[];
}
文章 Post
import { PostModel } from "~/apps/page-service/src/model/post.model";
type MigratePost = Omit<
PostModel,
'id' | 'category' | 'images' | 'categoryId'
> & { category_id: string };
有几点是需要注意的:
slug
字段必须是唯一的category
字段是填写已经存在的分类的slug
(需要在 categories 中存在),否则 Mog 会自动创建一个新的分类created
和modified
字段必须是 ISO 8601 格式的时间字符串hide
一旦设置为true
,则文章将不会在文章列表接口和 RSS 中显示
页面 Page
import { PageModel } from "~/apps/page-service/src/model/page.model";
type MigratePage = Omit<PageModel, "id" | "images">;
分类 Category
import { CategoryModel } from "~/apps/page-service/src/model/category.model";
type MigrateCategory = Omit<CategoryModel, "id" | "type" | "created">;
其中 slug
字段必须是唯一的,图标可以是一个 url(推荐),也可以是一个 base64 编码的图片
评论 Comment
import { CommentsModel } from "~/apps/comments-service/src/comments.model";
type MigrateComment = Omit<
CommentsModel,
"commentsIndex" | "key" | "reaction" | "parent" | "children"
> & { parent: string; children: string[] };
- 里面的
pid
字段是必须的,它将会被用来匹配文章,你需要在里面填写对应文章的 slug,如果文章不存在,那么这条评论将会被忽略 id
字段必须是唯一的,它将会被用来匹配父级评论,如果父级评论不存在,那么这条评论将会被忽略
友链 Friend
type MigrateFriend = Omit<
FriendsModel,
"id" | "token" | "autoCheck" | "feedContents"
>;
用户 User
import { UserModel } from "~/apps/user-service/src/user.model";
type MigrateUser = Omit<
UserModel,
"password" | "lastLoginTime" | "lastLoginIp" | "apiToken" | "created" | "id"
>;
用户信息中没有导入密码的功能,在导入信息后,Mog 将为您重新生成一个临时密码,您可以在控制台仪表盘中更改它