Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Knex.js query throws warning "Calling knex without a tableName is deprecated"

I'm using Knex.js for Mysql. I run the Migrations and the Tables created successfully. After that, when I run seeds by this command command knex seed:run and I get the following error:

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

Please review following error and my codes. I don't find any wrong code. How to solve this?!

Terminal error:

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)

My 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' 
        }
    }

};

seed content:

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: '[email protected]',
          address: 'xxxx'
        }
      ]);
    });
};
like image 437
Ali Hesari Avatar asked Oct 20 '25 01:10

Ali Hesari


1 Answers

The table name should be passed to knex() instead of .del().

knex('tbl_settings')
.del()
.then(...)
like image 158
nicholaswmin Avatar answered Oct 21 '25 15:10

nicholaswmin