如何将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
相关产品推荐
相关产品推荐

