Why django migrate doesn't work even though I used make migration and it have not error

i create a new instance of Model an use makemigrations its work and this is my 0001_initial.py:

class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='ProfileModel',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('avatar', models.ImageField(blank=True, default='accounts/avatars/default_avatar.jpg', upload_to='accounts/avatars/')),
                ('phone', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, region=None)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]

when i use migrate Django cannot detect and apply changes to the database. Operations to perform: Apply all migrations: my_app Running migrations: No migrations to apply.

i use python .\manage.py migrate accounts_app 0001_initial and its not work django say: No migration to Apply

and when i use python .\manage.py showmigrations accounts_app There is a cross next to my migration file name.

The migration is already applied to the database you’re connected to. The marker (often shown as a checked box [X]) means applied; an empty box means not applied.

What to do:

  • Confirm status by running python manage.py showmigrations accounts_app
    • If you see [X] 0001_initial, the migrations were applied.
    • If you see [ ] 0001_initial, the migrations were not applied.
  • If you want to re-run it:
    • python manage.py migrate accounts_app zero
    • python manage.py migrate accounts_app
  • Or drop the database (e.g., db.sqlite3) and run python manage.py migrate
  • This way you will be able to see the migrations as they are applied.
  • Also ensure the app is in INSTALLED_APPS and you’re connected to the same DB you’re inspecting.

For example:

# Run makemigrations
python manage.py makemigrations chat_assistant
Migrations for 'chat_assistant':
  chat_assistant/migrations/0002_assistantconfiguration_query_limit.py
    + Add field query_limit to assistantconfiguration

# Check migrations that have been applied
python manage.py showmigrations chat_assistant
 [X] 0001_initial                            # This one has been applied
 [ ] 0002_assistantconfiguration_query_limit # This one has not been applied

# Apply migrations that have not been applied
python manage.py migrate chat_assistant
Operations to perform:
  Apply all migrations: chat_assistant
Running migrations:
  Applying chat_assistant.0002_assistantconfiguration_query_limit... OK

# Check that the new migration has been applied
python manage.py showmigrations chat_assistant
chat_assistant
 [X] 0001_initial
 [X] 0002_assistantconfiguration_query_limit # Now this migration has been applied.
Вернуться на верх