Knex: рдХреНрд▓реЗрдХреНрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЕрдЧре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЗрдмрд▓ рд╣реИ, рдЯреЗрдмрд▓ 1, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдмрд▓ 2, рдФрд░ рдЯреЗрдмрд▓ 3 рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛ 2, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ 3 рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд░рдиреА рд╣реИред

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

migrations question

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

рддреБрдо рд╕рд╣реА рд╣реЛред

// migration: <timestamp>_create_things.js

module.exports.up = function(knex, Promise) {
  // Create referenced table before referencing table.
  return knex.schema
  .createTable('first', function(first) {
    first.increments('id').primary();
  })
  .createTable('second', function(second) {
    second.increments('id').primary();
    second.integer('first_id').references('id').inTable('first').notNull().onDelete('cascade');
  });
};

module.exports.down = function(knex, Promise) {
  // Reverse order here to prevent error.
  return knex.schema
  .dropTable('second')
  .dropTable('first');
}

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

рддреБрдо рд╕рд╣реА рд╣реЛред

// migration: <timestamp>_create_things.js

module.exports.up = function(knex, Promise) {
  // Create referenced table before referencing table.
  return knex.schema
  .createTable('first', function(first) {
    first.increments('id').primary();
  })
  .createTable('second', function(second) {
    second.increments('id').primary();
    second.integer('first_id').references('id').inTable('first').notNull().onDelete('cascade');
  });
};

module.exports.down = function(knex, Promise) {
  // Reverse order here to prevent error.
  return knex.schema
  .dropTable('second')
  .dropTable('first');
}

рдХреНрдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрд░реЗ рд╕рднреА "рдирд┐рдпрдорд┐рдд" рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рднреА рдЬрдВрдХреНрд╢рди рдЯреЗрдмрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ?

рдпрд╛ рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@LostCross рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЯреЗрдмрд▓ рдкрд░ рдирд╣реАрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдкрд╣рд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░рд╛ рд╢реЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдРрдк рдЬреАрд╡рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред

рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд▓реЗрди-рджреЗрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЕрдиреБрдХреНрд░рдо рд▓реЗ рд╕рдХреЗрдВред рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдпрд╛рд╕ рдХрд╛ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

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