기존 Django 프로젝트에서 이름을 바꾸려는 모델과 외래 키 관계가있는 다른 모델이 많이있는 여러 모델의 이름을 바꿀 계획입니다. 이 작업을 여러 번 수행해야한다고 확신하지만 정확한 절차는 확실하지 않습니다. Django 앱에서 다음 모델로 시작한다고 가정 해 봅시다 myapp. class Foo(models.Model): name = models.CharField(unique=True, max_length=32) description = models.TextField(null=True, blank=True) class AnotherModel(models.Model): foo = …
제목에서 알 수 있듯이 마이그레이션이 작동하지 않는 것 같습니다. 응용 프로그램은 원래 1.6 미만이므로 마이그레이션이 처음에는 존재하지 않으며 실제로 실행 python manage.py migrate하면 다음과 같은 결과가 나타납니다. Operations to perform: Synchronize unmigrated apps: myapp Apply all migrations: admin, contenttypes, auth, sessions Synchronizing apps without migrations: Creating tables... Installing custom SQL... …
makemigrations 명령을 사용하여 기존 앱 내에서 마이그레이션을 만들려고했지만 "변경 사항이 감지되지 않았습니다"가 출력됩니다. 일반적으로 startapp명령을 사용하여 새 앱을 만들지 만이 앱을 만들 때이 앱에 사용하지 않았습니다. 디버깅 후 migrations패키지 / 폴더가 앱에서 누락되어 마이그레이션을 생성하지 않는 것으로 나타났습니다 . 폴더가 없거나 누락 된 경우 폴더를 만드는 것이 더 좋습니까?
TextField에서 null = True를 제거하고 싶습니다. - footer=models.TextField(null=True, blank=True) + footer=models.TextField(blank=True, default='') 스키마 마이그레이션을 생성했습니다. manage.py schemamigration fooapp --auto 일부 바닥 글 열에 는 마이그레이션을 실행하면 NULL다음이 포함 error됩니다. django.db.utils.IntegrityError : "footer"열에 null 값이 있습니다. 나는 이것을 스키마 마이그레이션에 추가했습니다. for sender in orm['fooapp.EmailSender'].objects.filter(footer=None): sender.footer='' sender.save() 이제 다음을 얻습니다. django.db.utils.DatabaseError: …
일부 모델로 새 앱을 만들었는데 이제 일부 모델이 제대로 고려되지 않은 것을 알았습니다. 내가 코드를 커밋하지 않았기 때문에 현명한 것은 데이터베이스를 양호한 상태로 마이그레이션하고 더 나은 모델로 마이그레이션을 다시 실행하는 것입니다. 이 경우 마지막 양호한 상태는 새 앱이 존재하지 않는 데이터베이스입니다. Django 1.7의 초기 마이그레이션에서 다시 마이그레이션하려면 어떻게해야합니까? 에서 South하나가 …
Django 1.7 은 데이터베이스 마이그레이션을 도입했습니다 . Django 1.7에서 단위 테스트를 실행하면 시간이 오래 걸리는 migrate를 강제 실행합니다 . 그래서 장고 마이그레이션을 건너 뛰고 최종 상태에서 데이터베이스를 만들고 싶습니다. 마이그레이션을 무시하는 것은 코드의 해당 부분이 테스트되지 않기 때문에 나쁜 습관이 될 수 있다는 것을 알고 있습니다. 그러나 그것은 사실이 아닙니다. …
South에 대한 비슷한 질문이 이미 있지만 Django 1.7로 프로젝트를 시작했으며 South를 사용하지 않습니다. 개발 중에 많은 마이그레이션이 생성되었지만 소프트웨어는 아직 제공되지 않았으며 마이그레이션해야하는 데이터베이스도 없습니다. 따라서 현재 모델이 원래 모델 인 것처럼 마이그레이션을 재설정하고 모든 데이터베이스를 다시 만들고 싶습니다. 권장하는 방법은 무엇입니까? 편집 : Django 1.8 부터 여기에 설명 된 …