Node.js下通过npm包集成Liquibase连接本地SQL数据库出现报错如何解决
实操前置条件
- 运行环境:Node.js环境,本地已完成Java运行环境安装
- 工具选择:通过npm安装的
liquibase包对接Liquibase能力,目标操作为对接本地SQL数据库执行变更脚本 - 项目文件现状:除代码中明确引用的文件外,目录下无其他与Liquibase、数据库连接相关的额外配置文件
核心实现代码
const path = require('path'); const liquibase = require('liquibase'); let db; (async () => { try { await liquibase({ liquibase: path.join(__dirname, 'liquibase/liquibase-core-3.5.3.jar'), classpath: path.join(__dirname, 'liquibase/postgresql-9.4-1201.jdbc4.jar'), changeLogFile: path.join(__dirname, 'liquibase/resource/inmates_1.sql'), url: 'localhost', username: 'root', password: '', }).run('update'); console.log('Liquibase set up successfully.'); } catch(e) { console.log(`Liquibase error: ${e}.`); } })();
运行报错输出
执行上述脚本时直接抛出错误,完整报错信息如下:
Liquibase error: Error: Command failed: C:\Users\Tal\Desktop\mysql_test\liquibase\liquibase-core-3.5.3.jar --changeLogFile=C:\Users\Tal\Desktop\mysql_test\liquibase\resource\inmates_1.sql --url=localhost --username=root --password= --classpath=C:\Users\Tal\Desktop\mysql_test\liquibase\postgresql-9.4-1201.jdbc4.jar update
已可直接识别的配置偏差点:
- JDBC连接URL未遵循规范格式,仅填写
localhost无法被Liquibase识别为有效数据库连接串- 配置引入的JDBC驱动为PostgreSQL版本,但登录使用的账号为MySQL默认的
root账号,存在数据库类型与驱动不匹配问题- 直接调用
liquibase-core-3.5.3.jar的方式未添加Java运行命令前缀,该Jar包为Liquibase核心逻辑包,不可直接作为可执行Jar运行
内容的提问来源于stack exchange,提问作者shalvi muqta
相关产品推荐
相关产品推荐

