๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python/ETC

Windows ํ™˜๊ฒฝ Django Oracle ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•

by ๐ŸŒปโ™š 2021. 10. 3.

Windows ํ™˜๊ฒฝ Django Oracle ์—ฐ๋™

Django๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•  ๋•Œ... ์€๊ทผํžˆ ํ•œ๋ฒˆ๋„ ํ•ด๋ณด์ง€ ์•Š์œผ๋ฉด ์‹œ๊ฐ„์„ ๊ฝค ์†Œ์š”ํ•˜๋Š” ๋ถ€๋ถ„์ด Oracle ์—ฐ๋™์ด๋‹ค. ์‹ค์ œ ๋ฐฐํฌํ™˜๊ฒฝ์ด๋‚˜ ํ…Œ์ŠคํŠธํ™˜๊ฒฝ์ด ๋ฆฌ๋ˆ…์Šค๋กœ๋˜์–ด ์žˆ์–ด Django DB ์—ฐ๋™๊ณผ ๊ด€๋ จ๋œ ๊ธ€์€ ๋Œ€๋ถ€๋ถ„์ด Linux๊ธฐ๋ฐ˜์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ง‰์ƒ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” PC๋‚˜ Django๋ฅผ ๋ฐฐ์šฐ๋Š” ์ž…์žฅ์—์„œ๋Š” Windows ํ™˜๊ฒฝ์—์„œ Django๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Windows ํ™˜๊ฒฝ์—์„œ Django์— Oracle์„ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.

 

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Django Oracle ์—ฐ๋™ ๊ด€๋ จํ•ด์„œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์กด์žฌํ•˜์—ฌ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. ํ•ด๋‹น ์‹ค์Šต์—์„œ๋Š” ์•„๋ž˜ ๋ฒ„์ „์œผ๋กœ ์—ฐ๋™ ์„ฑ๊ณต๋˜์—ˆ๋‹ค.

  • Python 3.9.6
  • Oracle12c
  • Oracle Client 19.12.0.0.0 Basic Light Package
  • Django 3.2.7
  • cx-Oracle 8.2.1

 

Oracle Settings

> pip install cx_Oracle

django์—์„œ Oracle ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ์ด๋‹ค. "cx_Oracle" ๋ชจ๋“ˆ์„ ๋ฐ›์•„์ค€๋‹ค.

 

 

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'SID',
        'USER': '์œ ์ €ID',
        'PASSWORD': '๋น„๋ฐ€๋ฒˆํ˜ธ',
        'HOST': 'ํ˜ธ์ŠคํŠธ',
        'PORT': '1521',
    }
}

django settings.py์˜ DATABASE ์„ค์ •์„ Oracle DB ์ •๋ณด์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ด์ค€๋‹ค.

 

 

DPI-1047 Cannot locate a 64-bit Oracle Client library ์˜ค๋ฅ˜

์ด ์ƒํƒœ๋กœ django server๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

django.db.utils.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” Oracle Client์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์ง€ ๋ชปํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ์ž…๋‹ˆ๋‹ค.

 

 

์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ์„ค์น˜ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

https://www.oracle.com/kr/database/technologies/instant-client/winx64-64-downloads.html

Django Oracle ์—ฐ๋™

ํ•ด๋‹น ์‹ค์Šต์—์„œ๋Š” Oracle Client 19.12.0.0.0 Basic Light Package๋ฅผ ์ด์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์••์ถ•์„ ํ’€์–ด์„œ ์ ๋‹นํ•œ ์œ„์น˜์— ์ด๋™์‹œ์ผœ ์ค๋‹ˆ๋‹ค.

 

 

Django์—์„œ DB Client๋ฅผ ์ธ์‹์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ™˜๊ฒฝ๋ณ€์ˆ˜์— DB Client์˜ ์œ„์น˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.
  • ์ฝ”๋“œ์ƒ์—์„œ ์ง์ ‘ DB Client์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.

 

Django๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์‹œ์Šคํ…œ์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ž๋™์œผ๋กœ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” Windows ํ™˜๊ฒฝ์—์„œ๋Š” Path์— ๋“ฑ๋กํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

๋‚ด ์ปดํ“จํ„ฐ ์šฐํด๋ฆญ > ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • > ํ™˜๊ฒฝ ๋ณ€์ˆ˜ > ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŽธ์ง‘ 

ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ณ  ์‚ฌ์šฉํ•˜๋˜ ํ„ฐ๋ฏธ๋„์ด๋‚˜ IDE์—์„œ ๊ทธ๋ž˜๋„ ๋˜‘๊ฐ™์ด

django.db.utils.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์‚ฌ์šฉํ•˜๋˜ ํ„ฐ๋ฏธ๋„์ด๋‚˜ IDE๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์ฃผ๊ณ  ์„œ๋น„๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

์ฃผ์˜์‚ฌํ•ญ

Migration ์ ์šฉ

ํด๋ผ์ด์–ธํŠธ๊นŒ์ง€ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์–ด ์—ฐ๊ฒฐ์ด ๋˜๋ฉด runserver ๋ช…๋ น์„ ํ†ตํ–‰ django server๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์•„๋ฌด๋Ÿฐ ์˜ค๋ฅ˜ ์—†์ด ์ž˜ ์„ฑ๊ณตํ•œ๋‹ค. ํ•˜์ง€๋งŒ... ์ ์–ด๋„ DB migrating ์ž‘์—…๊นŒ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ๊นŒ์ง€๋Š” ํ™•์ธํ•ด์ค˜์•ผํ•œ๋‹ค. ์—ฐ๊ฒฐ์€ ๋˜์ง€๋งŒ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์˜ค์ง€ ๋ชปํ•˜๋Š” ๋ฒ„์ „ ์˜์กด์„ฑ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

 

๋ฒ„์ „ ์˜์กด์„ฑ

Django์™€ Oracle์„ ์—ฐ๋™ํ•  ๋•Œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์กด์žฌํ•œ๋‹ค.

 

https://docs.djangoproject.com/en/2.0/releases/2.0/#dropped-support-for-oracle-11-2

 

Django 2.0 release notes | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

cx_Oracle 8.2 ๋ชจ๋“ˆ๋กœ๋Š” Oracle 11.2๋„ ์ง€์›ํ•˜์ง€๋งŒ... Django 2.0๋ถ€ํ„ฐ๋Š” Oracle 12.1 ์ด์ƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ณต์‹œ๋˜์–ด ์žˆ๋‹ค. ์ฆ‰, Oracle11g๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Django 1์ ๋Œ€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ... Django 2.0์—์„œ Oracle11g๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฒ•์€ ์กด์žฌํ•œ๋‹ค.

์•„๋ž˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

[Python/Python ๊ฐœ๋ฐœ] - Django Oracle11g ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๋Œ“๊ธ€