728x90
반응형
장고에서 마이그레이션이 됐다는 메시지는 뜨는데 테이블을 생성하지 않을 때
분명 마이그레이션은 됐다고 하는데, 막상 db를 확인해보면 테이블이 없다.
models.py에서, class Meta:
부분을 주목해야 한다.
managed 속성이 false로 되어있으면 테이블을 생성하지 않는다.
models.py
class Playlist(models.Model):
user = models.ForeignKey('account.User', models.DO_NOTHING, blank=True, null=True)
name = models.CharField(max_length=50, blank=True, null=True)
tag = models.CharField(max_length=50, blank=True, null=True)
class Meta:
managed = False
db_table = 'playlist'
프로젝트에서 구현한 코드 일부이다.
managed=False로 되어있는 것을 볼 수 있다.
class Meta:
managed = True
db_table = 'playlist'
이런 식으로 변경해야 한다.
왜 이런 코드가 있을까?
나는 이런 속성을 부여한 적이 없는데? 라고 생각했으나
mysql의 db를 models.py에 끌어오는
python manage.py inspectdb > app/models.py
를 사용하면
자동으로 managed 속성이 false로 들어가게 된다.
인식한 db를 다시 migrate하지 않기 위해 부여한 것으로 보이지만,
오히려 이 속성 때문에
다른 컴퓨터에서 실행할 때 마이그레이션이 진행되지 않는 것이다.
728x90
반응형
'Computer Science > Troubleshooting' 카테고리의 다른 글
[Postman] 파일 업로드 / 파일 포함해서 request하기 (0) | 2022.08.25 |
---|---|
[Postman] Postman 사용법 (0) | 2022.08.25 |
[MySQL] MySQL ERROR 1045 (0) | 2022.08.23 |
[Django] Migration/마이그레이션 충돌 시 해결방법들 (1) | 2022.08.19 |
[Docker] pull access denied (0) | 2022.08.17 |