gpt4 book ai didi

mysql - Knex.js 查询抛出警告 "Calling knex without a tableName is deprecated"

转载 作者:行者123 更新时间:2023-11-29 04:34:02 30 4
gpt4 key购买 nike

我正在为 Mysql 使用 Knex.js。我运行迁移并成功创建表。之后,当我通过此命令命令 knex seed:run 运行种子时,出现以下错误:

Knex:warning - calling knex without a tableName is deprecated. Use knex.queryBuilder() instead.

请查看以下错误和我的代码。我没有找到任何错误的代码。如何解决这个问题?!

终端错误:

Using environment: development
Knex:warning - calling knex without a tableName is deprecated. Use knex.queryBuilder() instead.
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
at Query.Sequence._packetToError (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
at Query.ErrorPacket (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\sequences\Query.js:77:18)
at Protocol._parsePacket (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\Protocol.js:279:23)
at Parser.write (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\Parser.js:76:12)
at Protocol.write (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\Protocol.js:39:16)
at Socket.<anonymous> (C:\wamp64\www\golabi-api\node_modules\mysql\lib\Connection.js:103:28)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:594:20)
--------------------
at Protocol._enqueue (C:\wamp64\www\golabi-api\node_modules\mysql\lib\protocol\Protocol.js:145:48)
at Connection.query (C:\wamp64\www\golabi-api\node_modules\mysql\lib\Connection.js:208:25)
at C:\wamp64\www\golabi-api\node_modules\knex\lib\dialects\mysql\index.js:161:18
at Promise._execute (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\debuggability.js:303:9)
at Promise._resolveFromExecutor (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:483:18)
at new Promise (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:79:10)
at Client_MySQL._query (C:\wamp64\www\golabi-api\node_modules\knex\lib\dialects\mysql\index.js:155:12)
at Client_MySQL.query (C:\wamp64\www\golabi-api\node_modules\knex\lib\client.js:199:17)
at Runner.<anonymous> (C:\wamp64\www\golabi-api\node_modules\knex\lib\runner.js:149:36)
at Runner.tryCatcher (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\util.js:16:23)
at Runner.query (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\method.js:15:34)
at C:\wamp64\www\golabi-api\node_modules\knex\lib\runner.js:61:21
at tryCatcher (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\util.js:16:23)
at C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\using.js:185:26
at tryCatcher (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\util.js:16:23)
at Promise._settlePromiseFromHandler (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:512:31)
at Promise._settlePromise (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:569:18)
at Promise._settlePromise0 (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:693:18)
at Promise._fulfill (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise.js:638:18)
at PromiseArray._resolve (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise_array.js:126:19)
at PromiseArray._promiseFulfilled (C:\wamp64\www\golabi-api\node_modules\bluebird\js\release\promise_array.js:144:14)

我的 kenxfile.js

module.exports = {

development: {
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'root',
password: '',
database: 'golabi',
charset: 'utf8',
},
migrations: {
tableName: 'knex_migrations'
},
seeds: {
directory: './seeds'
}
}

};

种子内容:

exports.seed = function(knex, Promise) {
// Deletes ALL existing entries
return knex().del('tbl_settings')
.then(function () {
// Inserts seed entries
return knex('tbl_settings').insert([
{
id: 1,
about_us: 'Ali Hesari',
phone: 05000000,
mobile: 09300000,
email: 'xxxxx@gmail.com',
address: 'xxxx'
}
]);
});
};

最佳答案

表名应传递给 knex() 而不是 .del()

knex('tbl_settings')
.del()
.then(...)

关于mysql - Knex.js 查询抛出警告 "Calling knex without a tableName is deprecated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49499425/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com