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

如何将KeystoneJS v6默认SQLite数据库切换为MySQL?迁移报错求助

解决KeystoneJS v6切换MySQL时keystone-next包不存在的迁移错误

问题原因

KeystoneJS v6正式版已废弃keystone-next这个临时过渡包名,该包已从npm注册表移除。执行npx keystone-next migrate时,npx会尝试安装不存在的包,因此触发报错。

正确操作步骤

1. 安装MySQL依赖

KeystoneJS v6连接MySQL需要mysql2驱动包,先安装:

npm install mysql2

2. 确认数据库配置(已完成可跳过)

确保keystone.ts中的数据库配置正确:

import { config } from '@keystone-6/core';

export default config({
  db: {
    provider: 'mysql',
    url: 'mysql://root:root@localhost:3306/keystone',
    // 可选配置:开启日志、设置ID类型等
    enableLogging: true,
    idField: { kind: 'uuid' }, // 也可选择'autoincrement'
  },
  // 其他Keystone配置...
});

3. 执行迁移命令

使用项目本地的Keystone命令,避免调用已废弃的keystone-next:

方式一:通过npm scripts执行

在package.json中添加脚本:

{
  "scripts": {
    "migrate": "keystone migrate"
  }
}

然后运行:

npm run migrate

方式二:直接调用本地二进制文件

npx keystone migrate

或

./node_modules/.bin/keystone migrate

4. 验证结果

迁移完成后,登录MySQL检查keystone数据库是否已创建并生成对应表结构,确认连接与迁移成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:14:52