我想运行一些knex种子,至少对我来说我得到一个毫无意义的错误:错误:ER_PARSE_ERROR:你的SQL语法有错误;查看与您的M对应的手册 ariaDB服务器版本,用于在')附近使用正确的语法。在第1行
我不知道如何调试我的代码是我的迁移架构:
exports.up = function(knex, Promise) {
return Promise.all([
knex.schema.createTable('codes', table => {
table.increments('id').primary();
table.string('code').notNullable().unique();
table.text('description').defaultTo(null);
table.integer('system_id').unsigned().references('systems.id').defaultTo(null);
table.integer('unit_id').unsigned().references('units.id').defaultTo(null);
}),
knex.schema.createTable('tags', table => {
table.increments('id').primary();
table.text('name').defaultTo(null);
}),
knex.schema.createTable('systems', table => {
table.increments('id').primary();
table.text('name').defaultTo(null);
}),
knex.schema.createTable('units', table => {
table.increments('id').primary();
table.text('name').defaultTo(null);
}),
knex.schema.createTable('codes_tags', table => {
table.increments('id').primary();
table.integer('tag_id').unsigned().references('tags.id');
table.integer('code_id').unsigned().references('codes.id');
})
])
};
exports.down = function(knex, Promise) {
return Promise.all([
knex.schema.dropTable('codes_tags'),
knex.schema.dropTable('codes'),
knex.schema.dropTable('tags'),
knex.schema.dropTable('systems'),
knex.schema.dropTable('units')
]);
};
这是我的种子文件:
import { CODES } from './data/constants'
exports.seed = async function(knex, Promise) {
return await populateData(knex, CODES)
};
async function populateData(knex, data){
for(let code in data){
let system = await knex('systems').where({name: data[code].system}).select('id')
if(!system){
system = await knex('systems').insert({name: data[code].system});
}
let tag = await knex('tags').where({name: data[code].type}).select('id');
if(!tag){
tag = await knex('tags').insert({name: data[code].type})
}
let code = await knex('codes').insert({code: code, system_id: system})
await knex('codes_tags').insert({code_id: code, system_id: system})
}
}