Django를 하다보면, DB관련 모델링 작업이나 로직을 수행할 때 DB에 대해 직접적으로 SQL쿼리를 이용하여 DB관련 작업을 진행하는 방식이 아닌 django ORM을 통해 DB 테이블을 생성하고, C.R.U.D를 할 수 있게 되어 있습니다.
이번 포스트 에서는 수많은 queryset들 중에 프로젝트에 사용했던 것 몇가지를 정리해 보겠습니다.
[models.py]
class Feed(model.Model): # Feed 라는 클래스 생성, (model.Model)을 사용하겠다! (상속)
content = models.TextField() # 글 내용
image = models.TextField() # 피드 이미지
profile_image = models.TextField # 프로필 이미지
user_id = models.TextField # 글쓴이
like_count = models.TextField # 좋아요 수
저번 포스팅에서 ORM을 사용하면 객체를 마이그레이션 하여 DB에 해당 객체 DB를 생성할 수 있다고 하였습니다.
위에서 생성한 Feed 객체를 migration하여 FeedDB를 생성해 보겠습니다.
migration을 하기 위해서는 터미널에 다음과 같은 명령어를 입력해야 합니다.
python manage.py makemigrations
이 명령어를 치면 django 프레임워크가 자동으로 사용자가 models.py에 선언한 클래스들(객체)를 찾아서, DB로 만드는 작업을 시작합니다.

명령을 실행하고 나면, content 앱의 migrations에 0001_initial.py 파일이 생성되었다고 나옵니다.
다음 파일에 들어가 보면, 다음 내용을 볼 수 있습니다.
+ 추가설명 : 0001_initial.py 파일은 마이그레이션 파일이라고도 부릅니다.
[0001_initial.py]
class Migration(migrations.Migration): # Migration 객체 'Migration을 할 것이다'
initial = True
dependencies = [
]
operations = [
migrations.CreateModel( # Migration의 내용 : CreateModel
name='Feed', # 모델 이름 : Feed
fields=[ # Feed의 필드는 이렇게 있다
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('content', models.TextField()),
('image', models.TextField()),
],
),
]
이렇게 마이그레이션 파일이 생성된 상태에서 해당 파일을 실행시키면 실제적으로 코드상에 있던 객체(클래스)들이 migration 되어 DB로 생기게 됩니다.
이때, 마이그레이션 파일을 실행하는 명령어는 python manage.py migrate 입니다.
migration 하여 생성된 DB는 db.sqlite3 파일에 저장됩니다. 이는 settings.py 파일에서 확인해 볼 수 있습니다.

django는 default로 sqlite DB를 사용합니다. sqlite DB는 아래 사진과 같은 sqlite 파일 안에 DB를 만들어, 데이터를 적제할 수 있는 기능을 제공합니다.

이 파일형태의 DB sqlite 파일에 테이블을 만들 수 있게 하는 명령어가 바로 !!!
python manage.py mygrate입니다.
즉, 마이그레이션 파일 실행 = 파일형태의 DB, sqlite 파일에 테이블 생성이라고 할 수 있습니다.