postgresql์ ์ ์ฅํ๊ธฐ ์ํด ์๋ก์ด uuid ๋๋ md5 random์ ์์ฑํ๋ ๋ฐฉ๋ฒ, ์:
ํ์ง๋ง '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"')
ํธ์ง: pg๋ฅผ ์ฌ์ฉํ ๋ ๋ฌธ์์ด ๋์ uuid ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์:
await knex.schema.createTable('Users', t => {
t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
// ...
})
๊ฐ์ฌ ํฉ๋๋ค @fl0w , ์ผ์ด์ค ์ข ๋ฃ โบ๏ธ
๊ณ ๋ง์ ์๋ค์!
๐
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋น์ ์ ํ ์ ์์ต๋๋ค
down
๋ง์ด๊ทธ๋ ์ด์ ์ ์์ง ๋ง์ธ์.ํธ์ง: pg๋ฅผ ์ฌ์ฉํ ๋ ๋ฌธ์์ด ๋์ uuid ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์: