是否存在官方方案可以禁用Knexjs的迁移执行功能?
Knex 禁用指定连接迁移操作的实现说明
截至最新的Knex版本,官方没有提供专门的配置项直接禁用单个Knex连接的所有迁移操作,你当前使用的配置方案是官方社区公认的标准变通实现。
推荐的配置实现
你当前的配置逻辑已经符合最佳实践,完整配置参考如下:
// 独立管控数据源的Knex初始化配置 const independentDb = require('knex')({ client: 'postgresql', // 替换为你实际使用的数据库客户端 connection: { host: 'xxx', port: 5432, user: 'xxx', password: 'xxx', database: 'xxx' }, // 迁移相关配置,直接禁用所有迁移逻辑 migrations: { directory: [], // 迁移目录设为空数组,无任何迁移文件可加载 disableMigrationsListValidation: true // 关闭空迁移列表的校验报错 } })
配置完成后,即使误执行全局迁移命令,针对该连接也不会触发任何迁移操作,不会修改独立管控数据源的表结构。
额外规避方案
如果你的项目中有自定义的全局迁移执行脚本,可以额外做逻辑隔离:仅对需要执行迁移的数据源调用migrate系列API,独立管控的数据源永远不触发任何迁移相关的方法调用,从逻辑层面彻底规避误执行风险。
内容的提问来源于stack exchange,提问作者iQ.
相关产品推荐
相关产品推荐

