Knex: MySQL sql_mode рдХреЛ knex рдкреВрд▓ рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдирдорд╕реНрддреЗ,

рдореИрдВ MySQL рд╕рд░реНрд╡рд░ v5.7.x рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ strict mode рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sql_mode рд╕реЗ NO_ENGINE_SUBSTITUTION рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдХреЛрдИ MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдВрд╕реЛрд▓ рд╕реЗ SHOW VARIABLES LIKE 'sql_mode'; рдЯрд╛рдЗрдк рдХрд░рдХреЗ sql_mode MySQL рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  • MySQL рд╕рд░реНрд╡рд░ v5.6.x рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ
    NO_ENGINE_SUBSTITUTION
  • MySQL рд╕рд░реНрд╡рд░ v5.7.x рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ
    ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди workaround /etc/mysql/my.cnf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ mysqld рдЕрдиреБрднрд╛рдЧ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
sql_mode='NO_ENGINE_SUBSTITUTION'

рдореИрдВ рдЗрд╕реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реНрддрд░ рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ DB рд╕рд░реНрд╡рд░ рд╕реНрддрд░ рдХреЗ рдмрдЬрд╛рдпред рдХрд┐рд╕реА рднреА рд╕рд▓рд╛рд╣ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреАред

рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп @ rhys-vdw,

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЙрдкрд░реНрдпреБрдХреНрдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ, рдлрд┐рд░ рднреА, afterCreate рдлрд╝рдВрдХреНрд╢рди рдХреЛ pool рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЯреНрд░рд┐рдХ рд╣реИред рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рд╣реИ:

dbase: {
          client: 'mysql',
          connection: {
            socketPath: '/var/run/mysqld/mysqld.sock',
            database : 'db_name',
            user: 'db_username',
            password : 'db_password',
            timezone: 'UTC',
            charset: 'utf8mb4_unicode_ci',
            supportBigNumbers:true
          },
          pool: {
            min: 2,
            max: 10,
            afterCreate: function(conn, cb) {
              conn.query('SET sql_mode="NO_ENGINE_SUBSTITUTION";', function (err) {
                cb(err, conn);
              });
            }
          }
        }

рд╕рд╛рджрд░,
рд▓реБрдХрд╛

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдп @ rhys-vdw,

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЙрдкрд░реНрдпреБрдХреНрдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ, рдлрд┐рд░ рднреА, afterCreate рдлрд╝рдВрдХреНрд╢рди рдХреЛ pool рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЯреНрд░рд┐рдХ рд╣реИред рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рд╣реИ:

dbase: {
          client: 'mysql',
          connection: {
            socketPath: '/var/run/mysqld/mysqld.sock',
            database : 'db_name',
            user: 'db_username',
            password : 'db_password',
            timezone: 'UTC',
            charset: 'utf8mb4_unicode_ci',
            supportBigNumbers:true
          },
          pool: {
            min: 2,
            max: 10,
            afterCreate: function(conn, cb) {
              conn.query('SET sql_mode="NO_ENGINE_SUBSTITUTION";', function (err) {
                cb(err, conn);
              });
            }
          }
        }

рд╕рд╛рджрд░,
рд▓реБрдХрд╛

рдзрдиреНрдпрд╡рд╛рдж @lanceschi , рдореИрдВрдиреЗ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛?

рдХреЙрд▓рдмреИрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рд╕рдорд╛рдкрди

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

fsebbah picture fsebbah  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hyperh picture hyperh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

olaferlandsen picture olaferlandsen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nklhrstv picture nklhrstv  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

npow picture npow  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ