рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЗрдмрд▓ рд╣реИ, рдЯреЗрдмрд▓ 1, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдмрд▓ 2, рдФрд░ рдЯреЗрдмрд▓ 3 рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛ 2, рдФрд░ рддрд╛рд▓рд┐рдХрд╛ 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 рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЯреЗрдмрд▓ рдкрд░ рдирд╣реАрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдкрд╣рд▓реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреВрд░рд╛ рд╢реЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдРрдк рдЬреАрд╡рди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд▓реЗрди-рджреЗрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЕрдиреБрдХреНрд░рдо рд▓реЗ рд╕рдХреЗрдВред рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдпрд╛рд╕ рдХрд╛ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рддреБрдо рд╕рд╣реА рд╣реЛред