1. λ°μ΄ν°λ² μ΄μ€ μλ©(database seeding)μ΄λ?
λ°μ΄ν°λ² μ΄μ€μ μ΄κΈ° λ°μ΄ν°λ₯Ό μ€μ νλ κ²μ λ§ν©λλ€.
λͺ¨λΈμ μμλ₯Ό μΆκ°νλ λ°©λ²μΌλ‘ μ°λ¦¬λ λ κ°μ§ λ°©λ²μ μ¬μ©νμμ΅λλ€.
- κ΄λ¦¬μ νμ΄μ§
- μ₯κ³ Shell
κ·Έλ μ§λ§ μμ£Ό λ§μ λ°μ΄ν°λ₯Ό μ΄λ¬ν λ°©λ²μΌλ‘ μΌμΌμ΄ μ μ₯νκΈ°μλ λ¬΄λ¦¬κ° μμ΅λλ€. μ΄λ΄ λ
loaddata
μ dumpdata
λͺ
λ Ήμ΄λ₯Ό νμ©ν μ μμ΅λλ€.Β
2. dumpdata
dumpdata
λͺ
λ Ήμ΄λ νμ¬ DBμ μλ λ°μ΄ν°λ₯Ό ν
μ€νΈ νμμ νμΌλ‘ μ μ₯νλ κ²μ λ§ν©λλ€. μΆνμ μ΄ νμΌμ loaddata
λͺ
λ Ήμ΄λ₯Ό ν΅ν΄ μ½μ΄μ μνλ DBμ μ μ₯ν μ μμ΅λλ€.python manage.py dumpdata main --output data.json
main
:main
μ΄λΌλ μ±μ λͺ¨λΈλ€μ λ°μ΄ν°λ₯Ό μ μ₯
--output data.json
:data.json
μ΄λΌλ νμΌλ‘ μ μ₯
Β
λͺ
λ Ή μν κ²°κ³Όλ‘ λ§λ€μ΄μ§
data.json
νμΌμ λ€μκ³Ό κ°μ΅λλ€.[{"model": "main.developer", "pk": 1, "fields": {"name": "νλ‘ νΈ μλ"}}, {"model": "main.developer", "pk": 2, "fields": {"name": "λ°±μλ κ°λ°"}}, {"model": "main.developer", "pk": 3, "fields": {"name": "κ²μ κ°λ°"}}, {"model": "main.developer", "pk": 4, "fields": {"name": "λ°μ΄ν° λΆμκ³Ό μΈκ³΅μ§λ₯"}}, {"model": "main.developer", "pk": 5, "fields": {"name": "μ 보보μ"}}, {"model": "main.question", "pk": 1, "fields": {"number": 1, "content": "λΉμ μ΄ κ°μ₯ μ¬λ°μλ μμ μ?"}}, {"model": "main.choice", "pk": 1, "fields": {"content": "νλ‘ νΈμλ(HTML, CSS, Javascript, etc)", "question": 1, "developer": 1}}]
Β
νμ§λ§ ν μ€λ‘ μΆλ ₯λμ΄ μμλ³΄κΈ°κ° μ½μ§ μμ΅λλ€. κ·Έλ΄ λμλ
--indent 4
μ΅μ
μ μΆκ°ν©λλ€.python manage.py dumpdata main --output data.json --indent 4
Β
κ·Έλ¬λ©΄ μλμ κ°μ΄ μμ보기 μ½κ² λ€μ¬μ°κΈ°κ° λμ΄μ μΆλ ₯λ©λλ€.
[ { "model": "main.developer", "pk": 1, "fields": { "name": "νλ‘ νΈ μλ" } }, { "model": "main.developer", "pk": 2, "fields": { "name": "λ°±μλ κ°λ°" } }, { "model": "main.developer", "pk": 3, "fields": { "name": "κ²μ κ°λ°" } }, { "model": "main.developer", "pk": 4, "fields": { "name": "λ°μ΄ν° λΆμκ³Ό μΈκ³΅μ§λ₯" } }, { "model": "main.developer", "pk": 5, "fields": { "name": "μ 보보μ" } }, { "model": "main.question", "pk": 1, "fields": { "number": 1, "content": "λΉμ μ΄ κ°μ₯ μ¬λ°μλ μμ μ?" } }, { "model": "main.choice", "pk": 1, "fields": { "content": "νλ‘ νΈμλ(HTML, CSS, Javascript, etc)", "question": 1, "developer": 1 } } ]
Β
3. loaddata
dumpdataμμ μ€λͺ
νλ―μ΄,
loaddata
λ dumpdata
λ‘ μμ±λ λ°μ΄ν° νμΌμ μ½μ΄μ DBμ μ μ₯νλ λͺ
λ Ήμ΄μ
λλ€. loaddata
λͺ
λ Ήμ΄λ₯Ό μ΄μ©ν΄ μ°λ¦¬κ° 미리 μ€λΉν μ€λ¬Έ λ°μ΄ν°λ₯Ό DBμ μ μ₯ν΄λ΄
μλ€.νλ‘μ νΈ ν΄λμ
data.json
νμΌμ λ§λ€κ³ ν΄λΉ λ΄μ©μ λͺ¨λ 볡μ¬ν΄μ λΆμ¬λ£μ΅λλ€.Β
μ΄μ
loaddata
λͺ
λ Ήμ΄λ‘ DBμ μ μ₯ν©λλ€.python manage.py loaddata data.json
Β
μ¬μ§ μ²λΌ λμ¨λ€λ©΄ μ μ₯μ μ±κ³΅ν κ²μ
λλ€.
Β
μ΄μ μ€λ¬Έ νμ΄μ§λ‘ μ μνλ©΄ μ μ₯λ λ°μ΄ν°λ€μ΄ λͺ¨λ μ λμ€λ κ²μ νμΈν μ μμ΅λλ€.