运行Adonis JS迁移时遇MariaDB连接中断错误求助
Adonis JS迁移时MariaDB连接中断问题排查方案
检查MariaDB与mysql2驱动的兼容性
低版本MariaDB可能不支持带useTz参数的timestamp类型,可尝试移除该参数,改用基础的时间类型:table.timestamp('expires_at').nullable() table.timestamp('created_at').notNullable()或直接替换为MariaDB原生支持的
datetime类型:table.datetime('expires_at').nullable() table.datetime('created_at').notNullable()验证关联表的合法性
手动登录MariaDB,确认users表已正常创建,且id字段为unsigned integer类型——外键关联要求字段类型完全匹配,类型不匹配可能触发服务器异常断开。调整数据库连接超时配置
在config/database.ts的mysql连接配置中,增加超时参数避免连接被服务器主动回收:connections: { mysql: { client: 'mysql2', connection: { host: Env.get('DB_HOST'), port: Env.get('DB_PORT'), user: Env.get('DB_USER'), password: Env.get('DB_PASSWORD'), database: Env.get('DB_NAME'), // 新增超时配置 timeout: 60000, connectTimeout: 60000, }, // 其他原有配置 } }查看MariaDB服务器日志
检查MariaDB的错误日志(通常路径为/var/log/mariadb/),查找连接断开的具体原因,比如内存不足、磁盘空间已满、权限异常等系统级问题。重新生成迁移文件重试
删除当前的api_tokens迁移文件,执行node ace make:migration api_tokens重新生成迁移代码,对比自动生成的内容与原文件的差异后,再次运行node ace migration:run。
内容的提问来源于stack exchange,提问作者marcelo.delta
相关产品推荐
相关产品推荐

