Typeorm - gksrlfw/study GitHub Wiki
typeorm
Transaction
typeorm-transactional-cls-hooked ν¨ν€μ§
typeorm μμ μ 곡νλ νΈλμμ μ propagation μ μ§μνμ§ μμ΅λλ€. λ°λΌμ ν service μ λ©μλλ₯Ό νΈμΆνλ©΄ νΈλμμ μ΄ μνλλλ‘ λμνμ§ μμ μ μμ΅λλ€.
https://github.com/odavid/typeorm-transactional-cls-hooked μ μ΄μ©νλ©΄ νΈλμμ μ μ νν μ μμ΅λλ€.
νμ§λ§ μ ν¨ν€μ§λ cls-hooked λ₯Ό μ΄μ©ν©λλ€. cls-hooked λ νμ¬ experimental κΈ°λ₯μΌλ‘ νλ‘λμ μμ μ¬μ©ν μ μμμ§ ν μ€νΈν΄λ΄μΌ ν©λλ€. (μ±λ₯ μ΄μκ° μλκ²μΌλ‘ 보μ λλ€. https://github.com/bmeurer/async-hooks-performance-impact)
db connection νλλ‘ μ μ§: https://kay0426.tistory.com/60
Test
typeorm-test-transactions ν¨ν€μ§
typeorm μμλ ν μ€νΈμ©μΌλ‘ λ‘€λ°±μ μν κΈ°λ₯μ μ§μνμ§ μμ΅λλ€. λ°λΌμ μ€μ λ‘ save, delete νλ©΄μ disk μ μ°κ³ μ§μ°κ±°λ transaction μ μ΄μ©νμ¬ λ‘€λ°±ν΄μΌ ν©λλ€.
https://www.npmjs.com/package/typeorm-test-transactions μ μ΄μ©νλ©΄ μλμΌλ‘ λ°μ΄ν°λ₯Ό μ§μ°κ±°λ transaction μ μμ±ν νμμμ΄ λ‘€λ°±ν μ μμ΅λλ€. λ΄λΆμ μΌλ‘ typeorm-transactional-cls-hooked μ @transactional μ μ¬μ©νκ³ μμ§λ§ ν μ€νΈ νκ²½μ΄λ―λ‘ μ¬μ©ν΄λ λ κ²κ°μ΅λλ€.
μ ν¨ν€μ§μμ runInTransaction ν¨μλ connection name μ λ°μ§ μμ΅λλ€. runInMultiConnectionTransaction μ connection name λ°°μ΄μ λ°μ§λ§ λμνμ§ μμμ΅λλ€. (Why..?)
connection name μ λ°μ μ μλλ‘ patch-package λ‘ μμ νμ¬ μ¬μ©ν΄μΌν©λλ€.