我正在将Knex.js(以及Bookshelf.js)与PostreSQL数据库一起使用,我正在尝试“提取”SQL模式,以便将其用于Joi或{{3 }}
这里只是一个简单的例子:
用knex编写的模式:
return knex.schema.createTable('users', table => {
table.string('username').notNullable()
table.string('password')
})
我想自动获得:
const schema = Joi.object().keys({
username: Joi.string().required(),
password: Joi.string()
})
重点是避免将模式写入两次并以编程方式验证对象,然后再将其传递给bookshelf / knex。有没有内置的方法来做到这一点?还是最好的做法?
答案 0 :(得分:0)
您需要手动执行此操作或编写自己的架构构建器,以输出Joi架构和knex迁移...
通常人们只是在knex
中单独进行迁移,然后更新Joi验证以与更改的数据库架构同步。
答案 1 :(得分:0)
如果人们正在寻找类似的服务,那比要求的服务要多。我刚刚发布了一个库,该库使用 Knex 将 Joi模式转换为 SQL表。
https://github.com/Fantasim/joi-to-sql
目前,该库仅支持MySQL及其基本功能,但我计划添加更多功能,例如自动迁移(在MySQL上)。 如果您需要其他功能或其他数据库支持,欢迎提出请求!