ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • name: 'SequelizeDatabaseError', parent: Error: Unknown column 'likeId' in 'field list' , No migrations were executed, database schema was already up to date.
    Error Handling/에러핸들링 2023. 7. 6. 12:01

     

     No migrations were executed, database schema was already up to date.
    name: 'SequelizeDatabaseError',  parent: Error: Unknown column 'likeId' in 'field list'

    이 두가지 에러는 각각 다르지만 해결책은 똑같기에 한번에 정리해서 쓴다.

     

     

    1. 시퀄라이즈 sequelize에서 테이블을 생성 및 수정했는데 MySQL DB 데이터베이스에 반영이 안 될때.

    2. 테이블 내 컬럼명을 바꾸고 서버를 켜서 썬더클라이언트를 했더니 400 Bad Request 나올 때.

     

    테이블이 없는데도 업데이트 이미 되있다고 마이그레이션이 안될 때가 있다.

     

    sequelize는 SequelizeMeta라는 테이블을 만들어서 migration 상태를 저장한다.

    undo할 때 여기 저장된 migration 정보를 읽어서 down을 실행시키는 것 같다.

    select * from "SequelizeMeta";

    하고 있으면

    drop table "SequelizeMeta";

     

    SequelizeMeta 테이블에 들어가서, 순서대로

     

    DELETE FROM SequelizeMeta;
    SELECT * FROM SequelizeMeta; // 비워짐
    npx sequelize db:migrate // 터미널에 씀

    SELECT * FROM SequelizeMeta; // 생성됨

     

    이렇게 하면 된다.

    SequelizeMeta에는 migration 정보를 갖고있어서 이런식으로 해결이 가능하다. 아래는 에러 전문.

     

    Executing (default): SELECT `userId`, `email`, `password`, `nickname`, `age`, `gender`, `profileImage`, `createdAt`, `updatedAt` FROM `Users` AS `Users` WHERE `Users`.`userId` = 3;
    Executing (default): SELECT `postId`, `UserId`, `title`, `content`, `createdAt`, `updatedAt` FROM `Posts` AS `Posts` WHERE `Posts`.`postId` = '1';
    Executing (default): SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;
    Error
        at Query.run (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\dialects\mysql\query.js:52:25)
        at C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\sequelize.js:315:28
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async MySQLQueryInterface.select (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\dialects\abstract\query-interface.js:407:12)
        at async PostLikes.findAll (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\model.js:1140:21)
        at async PostLikes.findOne (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\model.js:1240:12)
        at async C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\routes\postlikes.js:18:36 {
      name: 'SequelizeDatabaseError',
      parent: Error: Unknown column 'likeId' in 'field list'
          at Packet.asError (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packets\packet.js:728:17)
          at Query.execute (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\commands\command.js:29:26)
          at Connection.handlePacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:492:32)
          at PacketParser.onPacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:97:12)
          at PacketParser.executeStart (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packet_parser.js:75:16)
          at Socket.<anonymous> (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:104:25)
          at Socket.emit (node:events:513:28)
          at addChunk (node:internal/streams/readable:324:12)
          at readableAddChunk (node:internal/streams/readable:297:9)
          at Readable.push (node:internal/streams/readable:234:10) {
        code: 'ER_BAD_FIELD_ERROR',
        errno: 1054,
        sqlState: '42S22',
        sqlMessage: "Unknown column 'likeId' in 'field list'",
        sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;',
        parameters: undefined
      },
      original: Error: Unknown column 'likeId' in 'field list'
          at Packet.asError (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packets\packet.js:728:17)
          at Query.execute (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\commands\command.js:29:26)
          at Connection.handlePacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:492:32)
          at PacketParser.onPacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:97:12)
          at PacketParser.executeStart (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packet_parser.js:75:16)
          at Socket.<anonymous> (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:104:25)
          at Socket.emit (node:events:513:28)
          at addChunk (node:internal/streams/readable:324:12)
          at readableAddChunk (node:internal/streams/readable:297:9)
          at Readable.push (node:internal/streams/readable:234:10) {
        code: 'ER_BAD_FIELD_ERROR',
        errno: 1054,
        sqlState: '42S22',
        sqlMessage: "Unknown column 'likeId' in 'field list'",
        sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;',
        parameters: undefined
      },
      sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;',
      parameters: {}
    }
    Executing (default): SELECT `userId`, `email`, `password`, `nickname`, `age`, `gender`, `profileImage`, `createdAt`, `updatedAt` FROM `Users` AS `Users` WHERE `Users`.`userId` = 3;
    Executing (default): SELECT `postId`, `UserId`, `title`, `content`, `createdAt`, `updatedAt` FROM `Posts` AS `Posts` WHERE `Posts`.`postId` = '1';
    Executing (default): SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;
    Error
        at Query.run (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\dialects\mysql\query.js:52:25)
        at C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\sequelize.js:315:28
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async MySQLQueryInterface.select (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\dialects\abstract\query-interface.js:407:12)
        at async PostLikes.findAll (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\model.js:1140:21)
        at async PostLikes.findOne (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\sequelize\lib\model.js:1240:12)
        at async C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\routes\postlikes.js:18:36 {
      name: 'SequelizeDatabaseError',
      parent: Error: Unknown column 'likeId' in 'field list'
          at Packet.asError (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packets\packet.js:728:17)
          at Query.execute (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\commands\command.js:29:26)
          at Connection.handlePacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:492:32)
          at PacketParser.onPacket (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\connection.js:97:12)
          at PacketParser.executeStart (C:\Users\admin\Desktop\코딩\NODE\4th Week\Sequelize-Relations (Lv.4)\node_modules\mysql2\lib\packet_parser.js:75:16)
          at Readable.push (node:internal/streams/readable:234:10) {
          at Readable.push (node:internal/streams/readable:234:10) {
        code: 'ER_BAD_FIELD_ERROR',
        errno: 1054,
        sqlState: '42S22',
        sqlMessage: "Unknown column 'likeId' in 'field list'",
        sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;', 
        sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;', 
        parameters: undefined
      },
      sql: 'SELECT `likeId`, `postId`, `userId`, `createdAt`, `updatedAt` FROM `PostLikes` AS `PostLikes` WHERE (`PostLikes`.`postId` = 3 AND `PostLikes`.`userId` = 1) LIMIT 1;',   
      parameters: {}
    }

     

    댓글

Designed by Tistory.