개발환경세팅
기업협업을 시작하고
초기세팅만 약 1주일이 넘게 걸렸다!!!
그동안 해왔던 개발환경 세팅과 현업에서는 다른 부분들이 있어서
정리 해두었던 부분과,
역시 그냥 넘어 갈 수 없는 에러들
settings.py & mysettings.py
예를 들어,
DATABASES, SECERET_KEY, ALGORITHM의 경우,
mysettings.py라는 파일을 따로 생성하여, git에 올라가지 않아야 할 부분들을 따로 작성한다던가,
zsh에 작성하여 환경변수로 불러오는 방법으로 설정(import os)하였지만,
settings라는 폴더를 생성하여
settings.py > common.py, local.py, test.py로 구분
파일을 구분하는 단계는 프로젝트 별로, 세팅하기 나름이겠지만,
목적은 개발환경과 로컬환경 구분하는것
이때 migrate error 발생, db를 읽지를 못함
# manage.py
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'rim_project.settings') #'rim_project.settings.local'
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
# __init__.py
from .local import *
db 등 개발에 필요한 내용들중 default 값 이외에 직접 설정한 내용들을 local에 설정해두었기 때문에, 장고가 실행될 때, local을 읽을 수 있도록 __init__.py
에 위와 같이 설정해서 불러들여올 수 있도록 한다.
mutiple databases에서, DATABASES가 "default"와 "service"를 사용하고,
inspectdb로 기존의 db를 불러오는 과정에서,
service db에서 inspectdb 명령이 실행되지 않아서
결국, 환경변수로 불러오는 것을 > 하드코딩 함
이 때, 지난 errorcatcher의 시작이 되었던 에러가 떠올랐다,
만약 내가 의도한대로 작동이 되지 않고, 다른 부분에 문제가 없는게 확실하다면,
그 부분(?)에서 계속 에러를 해결하기 보다 다른 부분으로 접근을 해서 해결해야 하는 것!
app 구분 후 경로 설정의 문제
생각해보면, 루트에 app을 만들어왔는데 약간 말도 안되는 짓이었나 싶,
# common.py
INSTALLED_APPS = [
.
.
.
'rim_project.apps.strategy'
]
# apps.py
from django.apps import AppConfig
class StrategyConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'rim_project.apps.strategy'
# urls.py
urlpatterns = [
path('strategy', include('rim_project.apps.strategy.urls'))
]
결론은, 이렇게 폴더를 구분 시에, 반드시 절대경로로 잘 설정해줘야 한다는 것과
그동안 건드릴 필요가 없었던 apps.py
와 common.py
, urls.py
를 모두 같게 설정해줘야 한다.
아주 긴 삽질의 끝에 간단하면서 기본인 해결방법!