Djangoで新規にモデルを作成したのにmigration時に「No changes detected」となった時の対処法

Djangoプロジェクトを作成し、新しくモデルを作成して、migrationを書けた時に、「No changes detected」と表示されてしまう。

モデルを変えたのになぜ???と思ってググルと

python manage.py makemigrations <project名>

とmigrationするときに、プロジェクト名を指定しないといけないらしい。

python manage.py makemigrationsだけでも、上手くいっている人も、いるため、謎は深まるが、変更が反映されないときは、プロジェクト名を指定してあげると確実

>>> python manage.py makemigrations
No changes detected
>>> python manage.py makemigrations project
Migrations for 'project':
  project/migrations/0001_initial.py
    - Create model Person
    - Create model Team
 manage.py
└── project
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-37.pyc
    │   ├── models.cpython-37.pyc
    │   ├── settings.cpython-37.pyc
    │   ├── urls.cpython-37.pyc
    │   └── wsgi.cpython-37.pyc
    ├── asgi.py
    ├── migrations
    │   ├── 0001_initial.py
    │   ├── __init__.py
    │   └── __pycache__
    │       └── __init__.cpython-37.pyc
    ├── models.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
from django.db import models

class Person(models.Model):
    name = models.CharField("名前", max_length=100)
    age = models.IntegerField("年齢")

    def __str__(self):
        return self.name

class Team(models.Model):
    name = models.CharField("チーム名", max_length=100)
    members = models.ManyToManyField("Person")

    def __str__(self):
        return self.name

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)