[ErrorCatcher 4] 개발환경 settings

LILO Ghim·2022년 1월 3일
0

개발환경세팅


기업협업을 시작하고
초기세팅만 약 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.pycommon.py, urls.py를 모두 같게 설정해줘야 한다.

아주 긴 삽질의 끝에 간단하면서 기본인 해결방법!

profile
킴릴로

0개의 댓글