рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, postgresql рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ uuid рдпрд╛ md5 рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:
рд▓реЗрдХрд┐рди 'knex.raw('uuid_generate_v4()')' рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдФрд░ рдРрд╕рд╛ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ uuid-v4 рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░рдг рдиреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдПрдХрдорд╛рддреНрд░ рд╕рд╣рд╛рдпрддрд╛ google рдФрд░ github рд╣реИ, рдореИрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ
рд▓реЗрдХрд┐рди '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 , рдХреЗрд╕ рдмрдВрдж я╕П
рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!
рдореИрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИ:
рддрдм рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
down
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рди рднреВрд▓реЗрдВ:рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкреАрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдпреВрдпреВрдЖрдИрдбреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: