Knex: ν…Œμ΄λΈ” μ‚­μ œ μ‹œ μΊμŠ€μΌ€μ΄λ“œ μ˜΅μ…˜

에 λ§Œλ“  2015λ…„ 09μ›” 12일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: knex/knex

λ‹€μŒκ³Ό 같은 것이 있으면 νŽΈλ¦¬ν•©λ‹ˆλ‹€.

knex.schema.dropTable('users', true);

//OR

knex.schema.cascade().dropTable('users');

생성할 것:

DROP TABLE users CASCADE;

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κΈ€μŽ„, 이것은 방언에 따라 λ‹€λ¦…λ‹ˆλ‹€. 더 λ‚˜μœ 것은 MySQL Documentation 에 λ”°λ₯΄λ©΄ CASCADE ν‚€μ›Œλ“œκ°€ ν—ˆμš©λ˜μ§€λ§Œ 아무 것도 ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. (μ œμ³λ‘κ³ , MySQL은 λ˜ν•œ CHECK μ œμ•½ 쑰건을 μžλ™μœΌλ‘œ λ¬΄μ‹œν•˜λ©° κ³Όκ±°μ—λŠ” 이것이 μ €λ₯Ό κΉ¨μ› μŠ΅λ‹ˆλ‹€).

이 κΈ°λŠ₯을 ν¬ν•¨ν•˜λ©΄ μ μ ˆν•œ CASCADE κ΅¬ν˜„μ΄ μ—†λŠ” 방언에 λŒ€ν•œ λŒ€μ²΄ κ΅¬ν˜„μ΄ ν•„μš”ν•˜κ±°λ‚˜ λŒ€μ²΄λ‘œ κ΅¬ν˜„ν•  방법이 μ—†λŠ” 경우 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λ˜μ Έμ•Ό ν•œλ‹€.

예λ₯Ό λ“€μ–΄, MySQLμ—μ„œ INFORMATION_SCHEMA.KEY_COLUMN_USAGE λ₯Ό μΏΌλ¦¬ν•˜κ³  각 table_name + '.' + column_name 쑰합에 λŒ€ν•œ λ…Έλ“œμ™€ REFERENCED_TABLE_NAME.REFERENCED_COLUMN_NAME μ—μ„œ TABLE_NAME.COLUMN_NAME κΉŒμ§€μ˜ κ°„μ„ μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ°©ν–₯μ„± κ·Έλž˜ν”„λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ κ·Έλž˜ν”„μ—μ„œ ν† ν΄λ‘œμ§€ 정렬을 μˆ˜ν–‰ν•˜λ©΄ λ“œλ‘­ μ˜€λ”κ°€ μ œκ³΅λ©λ‹ˆλ‹€. λ‚˜λŠ” μ΄κ²ƒμ„ν–ˆκ³  κ½€ 잘 μž‘λ™ν•©λ‹ˆλ‹€. INFORMATION_SCHEMA μ‚¬μš©μ˜ 쒋은 점은 λ˜ν•œ κ΅¬ν˜„μ΄ SQL μ–Έμ–΄ 간에 이식 κ°€λŠ₯ ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 그것이 μ‹€μ œλ‘œ 사싀인지 μ•„λ‹Œμ§€λŠ” μ™„μ „νžˆ λ‹€λ₯Έ μ΄μ•ΌκΈ°μž…λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

.truncate 도 동일

+1

κΈ€μŽ„, 이것은 방언에 따라 λ‹€λ¦…λ‹ˆλ‹€. 더 λ‚˜μœ 것은 MySQL Documentation 에 λ”°λ₯΄λ©΄ CASCADE ν‚€μ›Œλ“œκ°€ ν—ˆμš©λ˜μ§€λ§Œ 아무 것도 ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. (μ œμ³λ‘κ³ , MySQL은 λ˜ν•œ CHECK μ œμ•½ 쑰건을 μžλ™μœΌλ‘œ λ¬΄μ‹œν•˜λ©° κ³Όκ±°μ—λŠ” 이것이 μ €λ₯Ό κΉ¨μ› μŠ΅λ‹ˆλ‹€).

이 κΈ°λŠ₯을 ν¬ν•¨ν•˜λ©΄ μ μ ˆν•œ CASCADE κ΅¬ν˜„μ΄ μ—†λŠ” 방언에 λŒ€ν•œ λŒ€μ²΄ κ΅¬ν˜„μ΄ ν•„μš”ν•˜κ±°λ‚˜ λŒ€μ²΄λ‘œ κ΅¬ν˜„ν•  방법이 μ—†λŠ” 경우 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. λ˜μ Έμ•Ό ν•œλ‹€.

예λ₯Ό λ“€μ–΄, MySQLμ—μ„œ INFORMATION_SCHEMA.KEY_COLUMN_USAGE λ₯Ό μΏΌλ¦¬ν•˜κ³  각 table_name + '.' + column_name 쑰합에 λŒ€ν•œ λ…Έλ“œμ™€ REFERENCED_TABLE_NAME.REFERENCED_COLUMN_NAME μ—μ„œ TABLE_NAME.COLUMN_NAME κΉŒμ§€μ˜ κ°„μ„ μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ°©ν–₯μ„± κ·Έλž˜ν”„λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ κ·Έλž˜ν”„μ—μ„œ ν† ν΄λ‘œμ§€ 정렬을 μˆ˜ν–‰ν•˜λ©΄ λ“œλ‘­ μ˜€λ”κ°€ μ œκ³΅λ©λ‹ˆλ‹€. λ‚˜λŠ” μ΄κ²ƒμ„ν–ˆκ³  κ½€ 잘 μž‘λ™ν•©λ‹ˆλ‹€. INFORMATION_SCHEMA μ‚¬μš©μ˜ 쒋은 점은 λ˜ν•œ κ΅¬ν˜„μ΄ SQL μ–Έμ–΄ 간에 이식 κ°€λŠ₯ ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 그것이 μ‹€μ œλ‘œ 사싀인지 μ•„λ‹Œμ§€λŠ” μ™„μ „νžˆ λ‹€λ₯Έ μ΄μ•ΌκΈ°μž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

saurabhghewari picture saurabhghewari  Β·  3μ½”λ©˜νŠΈ

mtom55 picture mtom55  Β·  3μ½”λ©˜νŠΈ

arconus picture arconus  Β·  3μ½”λ©˜νŠΈ

nklhrstv picture nklhrstv  Β·  3μ½”λ©˜νŠΈ

fsebbah picture fsebbah  Β·  3μ½”λ©˜νŠΈ