[Django] 장고 inspectdb로 DB테이블을 models.py로 만들기

업데이트:

장고 inspectdb로 DB테이블을 models.py로 만들기

참고링크

운영체제 프론트엔드 백엔드 데이터베이스 인프라
리눅스구조 js필터 아파치에러로그 행삭제 아파치스쿱
프로세스 헬로월드 웹서버개념 ES기초 로그분석
네임스페이스 프로젝트생성 아파치설치 MySQL기초 beeline
디렉토리 헤더생성 flask연동 큐브리드 하둡기초
리다이렉션 async-get 장고MsSQL연결 null공백 나이파이
쓰레드 async-post 장고MySQL연결 MySQL설치(win) 백본
라즈베리파이설치 로그인페이지 장고inpectdb MySQL테이블생성 제플린
OSI7계층소개   장고read   SSL인증
OSI1계층   장고insert   커버로스
OSI2계층   장고put   도커개념
OSI3계층   장고del   도커설치
OSI4계층   flask한글요청   도커기초
OSI5,6,7계층       도커이미지
DNS서버       컨테이너네트워크
DHCP       도커API
bashrc       도커컴포즈
bash       도커볼륨
ifconfig       장고이미지
소켓프로그래밍       도커postgre
리눅스유저생성       도커이미지삭제
netstat포트열기       도커Redis
컴파일러       k8s구조
운영체제vs커널       k8s설치
작업스케쥴링       k8s서비스배포
디스크추가       POD네트워크
aws유저추가       퍼시스턴트볼륨
기초명령어       k8s에러
포트번호        

참고 링크

DB

백엔드

프론트엔드

1. DB 테이블 장고로 불러오기

본 예제는 맥OS 환경에서 실행했습니다.

장고의 models.py를 이용해 데이터베이스에 테이블을 생성할 수 있지만 대부분으 경우 데이터베이스의 테이블이 사전에 존재하는 경우가 많습니다. 따라서 이번 실습에서는 반대로 이미 존재하는 데이터베이스 테이블을 장고의 models.py로 만들어보겠습니다.

$ python manage.py inspectdb

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#   * Rearrange models' order
#   * Make sure each model has one field with primary_key=True
#   * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models


class AuthGroup(models.Model):
    name = models.CharField(unique=True, max_length=150)

    class Meta:
        managed = False
        db_table = 'auth_group'
(생략)

위와 같이 inpectdb 커맨드 이용하면 기존에 연동되어 있는 데이터베이스으 테이블을 파이썬 models.pyㄹ 만들어줍니다. 우리느 위 결과를 출력만 하는것이 목적이 아니라 models.py로 저장하는 것이 목적이므로 다음과 같이 입력해줍니다.

$ python manage.py inspectdb > models.py

위와 같은 커맨드를 입력하면 다음고 같이 models.py가 생성된 것을 알 수 있습니다.

$  python manage.py migrate

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

그리고 디비를 한번씨 건드릴때마다 위 코드와 같이 migrate명령어를 입력해줍니다.

$ python manage.py runserver

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
June 02, 2022 - 04:30:59
Django version 4.0.2, using settings 'dbcontest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

그리고 최종적을 서버가 잘 올라가는지 확인해줍니다.