Knex: UUID рдФрд░ MD5 рдЙрддреНрдкрдиреНрди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЬреВрди 2016  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: knex/knex

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, postgresql рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ uuid рдпрд╛ md5 рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:

screen shot 2016-06-12 at 5 10 36 pm

рд▓реЗрдХрд┐рди 'knex.raw('uuid_generate_v4()')' рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдФрд░ рдРрд╕рд╛ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ uuid-v4 рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред

screen shot 2016-06-12 at 5 23 16 pm

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░рдг рдиреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдПрдХрдорд╛рддреНрд░ рд╕рд╣рд╛рдпрддрд╛ google рдФрд░ github рд╣реИ, рдореИрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВред

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

рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИ:

knex.raw('create extension if not exists "uuid-ossp"')

рддрдм рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))

down рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рди рднреВрд▓реЗрдВ:

knex.raw('drop extension if exists "uuid-ossp"')

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреАрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдпреВрдпреВрдЖрдИрдбреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

await knex.schema.createTable('Users', t => {
  t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
  // ...
})

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

рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ

рд▓реЗрдХрд┐рди 'knex.raw('uuid_generate_v4()')'

рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛? рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕рд╛рджреЗ sql wirhout knex рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ postgrsql рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DEBUG= knex:* evironment рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

@anzileiro , рдЖрдкрдХреЛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ uuis-v4 рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рдореЙрдбрд▓ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдореЙрдбрд▓ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕рдХреА рд╕рдВрдкрддреНрддрд┐ hash рдХреЛ uuid() рдХреЗ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕реЗрд╡ рдХрд░реЗрдВ

рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИ:

knex.raw('create extension if not exists "uuid-ossp"')

рддрдм рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))

down рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рди рднреВрд▓реЗрдВ:

knex.raw('drop extension if exists "uuid-ossp"')

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреАрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдпреВрдпреВрдЖрдИрдбреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

await knex.schema.createTable('Users', t => {
  t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
  // ...
})

рдзрдиреНрдпрд╡рд╛рдж @fl0w , рдХреЗрд╕ рдмрдВрдж я╕П

рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!

рдореИрдВ

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

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

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

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

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

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

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