75👍
Your django_migrations table in your database is the cause of inconsistency and deleting all the migrations just from local path won’t work.
You have to truncate the django_migrations table from your database and then try applying the migrations again. It should work but if it does not then run makemigrations again and then migrate.
Note: don’t forget to take a backup of your data.
227👍
Since you are using a custom User model, you can do 4 steps:
- Comment out django.contrib.admin in your INSTALLED_APPS settings
INSTALLED_APPS = [ ... #'django.contrib.admin', ... ]
- Comment out admin path in urls.py
urlpatterns = [ ... #path('admin/', admin.site.urls) ... ]
- Then run
python manage.py migrate
- When done, uncomment all back
- [Django]-How to add new languages into Django? My language "Uyghur" or "Uighur" is not supported in Django
- [Django]-Error: could not determine PostgreSQL version from '10.3' – Django on Heroku
- [Django]-Django change default runserver port
128👍
Lets start off by addressing the issue with most of the answers on this page:
You never have to drop your database if you are using Django’s migration system correctly and you should never delete migrations once they are comitted
Now the best solution for you depends on a number of factors which include how experienced you are with Django, what level of understanding you have of the migration system, and how valuable the data in your database is.
In short there are two ways you can address any migration error.
-
Take the nuclear option. Warning: this is only an option if you are working alone. If other people depend on existing migrations you cannot just delete them.
- Delete all of your migrations, and rebuild a fresh set with
python3 -m manage makemigrations
. This should remove any problems you had with dependencies or inconsistencies in your migrations. - Drop your entire database. This will remove any problems you had with inconsistencies you had between your actual database schema and the schema you should have based on your migration history, and will remove any problems you had with inconsistencies between your migration history and your previous migration files [this is what the
InconsistentMigrationHistory
is complaining about]. - Recreate your database schema with
python3 -m manage migrate
- Delete all of your migrations, and rebuild a fresh set with
-
Determine the cause of the error and resolve it, because (speaking from experience) the cause is almost certainly something silly you did. (Generally as a result of not understanding how to use the migration system correctly). Based on the error’s I’ve caused there are three categories.
- Inconsistencies with migration files. This is a pretty common one when multiple people are working on a project. Hopefully your changes do not conflict and
makemigrations --merge
can solve this one, otherwise someone is going to have to roll back their migrations to the branching point in order to resolve this. - Inconsistencies between your schema and your migration history. To manage this someone will have either edited the database schema manually, or deleted migrations. If they deleted a migration, then revert their changes and yell at them; you should never delete migrations if others depend on them. If they edited the database schema manually, revert their changes and then yell at them; Django is managing the database schema, no one else.
- Inconsistencies between your migration history and your migrations files. [This is the
InconsistentMigrationHistory
issue the asker suffers from, and the one I suffered from when I arrived at this page]. To manage this someone has either manually messed with thedjango_migrations
table or deleted a migration after it was applied. To resolve this you are going to have to work out how the inconsistency came about and manually resolve it. If your database schema is correct, and it is just your migration history that is wrong you can manually edit thedjango_migrations
table to resolve this. If your database schema is wrong then you will also have to manually edit that to bring it in line with what it should be.
- Inconsistencies with migration files. This is a pretty common one when multiple people are working on a project. Hopefully your changes do not conflict and
Based on your description of the problem and the answer you selected I’m going to assume you are working alone, are new to Django, and don’t care about your data. So the nuclear option may be right for you.
If you are not in this situation and the above text looks like gibberish, then I suggest asking the Django User’s Mailing List for help. There are very helpful people there who can help walk you through resolving the specific mess you are in.
Have faith, you can resolve this error without going nuclear!
- [Django]-What's the difference between select_related and prefetch_related in Django ORM?
- [Django]-Django urlsafe base64 decoding with decryption
- [Django]-Querying django migrations table
73👍
This happened to me in a new project after I added a custom User model, per the recommendation in the django docs.
Here is what I did to solve the problem.
- Delete the database db.sqlite3.
- Delete the app/migrations folder.
Per @jackson, temporarily comment out django.contrib.admin.
INSTALLED_APPS = [
...
#‘django.contrib.admin’,
...
]
Also comment out the admin site in urls.py:
urlpatterns = [
path('profile/', include('restapp.urls')),
#path('admin/', admin.site.urls),
]
If you don’t comment out the path(‘admin/’), you will get error “LookupError: No installed app with label ‘admin'” when you run
python manage.py migrate
After the migrations finish, uncomment both of the above.
- [Django]-Error when using django.template
- [Django]-Annotate with latest related object in Django
- [Django]-Django models: Only permit one entry in a model?
69👍
Here how to solve this properly.
Follow these steps in your migrations folder inside the project:
- Delete the _pycache_ and the 0001_initial files.
- Delete the db.sqlite3 from the root directory (be careful all your data will go away).
- on the terminal run:
- python manage.py makemigrations
python manage.py migrate
Voila.
- [Django]-Django – what is the difference between render(), render_to_response() and direct_to_template()?
- [Django]-Are sessions needed for python-social-auth
- [Django]-Is it secure to store passwords as environment variables (rather than as plain text) in config files?
40👍
Problem
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency account.0001_initial on database ‘default’.
So we can migrate database without admin(admin.0001_initial) firstly.
After its dependency migrated, execute commands to migrate admin.0001_initial
.
Solution
- remove ‘django.contrib.admin’ from INSTALLED_APPS in settings.py.
- execute commands:
Python manage.py makemigrations appname
Python manage.py migrate appname
- add ‘django.contrib.admin’ to INSTALLED_APPS in settings.py file.
- execute commands again:
Python manage.py makemigrations appname
Python manage.py migrate appname
- [Django]-Speeding up Django Testing
- [Django]-How to manually assign imagefield in Django
- [Django]-Django + Ajax
11👍
Before performing any other steps, back up your database. Then back it up again.
Remove any custom user model code out of the way, disable your custom model and app in settings, then:
python manage.py dumpdata auth --natural-primary --natural-foreign > auth.json
python manage.py migrate auth zero # This will also revert out the admin migrations
Then add in your custom model, set it in settings, and re-enable the app. Make sure you have no migrations on this app yet.
Then:
python manage.py makemigrations <your-app>
python manage.py migrate
python manage.py loaddata auth.json # Assumes your user-model isn't TOO dissimilar to the standard one.
Done!
- [Django]-What does on_delete do on Django models?
- [Django]-Duplicate column name
- [Django]-Django annotation with nested filter
9👍
Solved by commenting app admin before migration in settings.py
django.contrib.admin
and in urls.py,
('admin/', admin.site.urls)
uncomment after migrate
- [Django]-AccessDenied when calling the CreateMultipartUpload operation in Django using django-storages and boto3
- [Django]-Django REST framework post array of objects
- [Django]-How do I reuse HTML snippets in a django view
6👍
Just delete all the migrations
folders, __pycache__
, .pyc
files:
find . | grep -E "(__pycache__|\.pyc|\.pyo$|migrations)" | xargs rm -rf
then, run:
python manage.py makemigrations
python manage.py migrate
- [Django]-Where's my JSON data in my incoming Django request?
- [Django]-Why is logged_out.html not overriding in django registration?
- [Django]-Django py.test does not find settings module
5👍
When you are doing some changes to default user model or you are making a custom user model by abstractuser then lot of times you will face that error
1: Remember when we create a superuser then for logging in we need username and password but if you converted USERNAME_FIELD = ’email’ then now you can’t login with username and password because your username field is converted into email….
and if you try to make another superuser then it will not ask for username it will only ask for email and password and then after creating superuser by email and password only when you try to login in admin pannel then it will throw that error because there is not any username and username field is required
2: That’s why after creating custom user model during migrate it will throw error so for
resolving it first add AUTH_USER_MODEL = ‘appname.custommodelname’ (appname is the app name where you definded your custom user model and custom model name is the name of the model which you gave to your custom user model) in your settings.py
3: Then delete the migrations folder of that app where you created that custom user model then delete the database db.sqlite3 of the project
4: Now run migrations python manage.py makemigrations appname(that app name where you defined your custom user model)
5: Then Migrate it by python manage.py migrate
6: That’s it Now it is Done
- [Django]-How can I call a custom Django manage.py command directly from a test driver?
- [Django]-Cron and virtualenv
- [Django]-Numeric for loop in Django templates
4👍
You can delete directly db.sqlite3, then migrate a new database is automatically generated. It should fix it.
rm sqlite3.db
python manage.py makemigrations
python manage.py migrate
- [Django]-Django development IDE
- [Django]-Separating form input and model validation in Django?
- [Django]-Django.db.utils.IntegrityError: duplicate key value violates unique constraint "django_migrations_pkey"
3👍
In my case the problem was with pytest starting, where I just altered --reuse-db
to --create-db
, run pytest, and changed it back. This fixed my problem
- [Django]-Django switching, for a block of code, switch the language so translations are done in one language
- [Django]-Django-DB-Migrations: cannot ALTER TABLE because it has pending trigger events
- [Django]-Find object in list that has attribute equal to some value (that meets any condition)
2👍
just delete the sqlite file or run flush the databse ‘python manage.py flush’
and then run makemigrations and migrate commands respectively.
- [Django]-Running a specific test case in Django when your app has a tests directory
- [Django]-How to get Request.User in Django-Rest-Framework serializer?
- [Django]-How does django handle multiple memcached servers?
2👍
when you create a new Django project and run
python manage.py migrate
The Django will create 10 tables for you by default including one auth_user table and two start with auth_user.
when you want to create a custom user model inherit from AbstractUser, you will encounter this problem with error message as follow:
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency account.0001_initial on database 'default'.
I solve this problem by dropping my entire database, and create a new one. And this replaced the three tables I mentioned.
- [Django]-AccessDenied when calling the CreateMultipartUpload operation in Django using django-storages and boto3
- [Django]-Python 3 list(dictionary.keys()) raises error. What am I doing wrong?
- [Django]-Django REST Framework: adding additional field to ModelSerializer
2👍
Your Error is essentially:
Migration "B" is applied before its dependency "A" on database 'default'.
Sanity Check: First, open your database and look at the records in the ‘django_migrations’ table. Records should be listed in Chronological order (ex: A,B,C,D…).
Make sure that the name of the “A” Migration listed in the error matches the name of the “A” migration listed in the database. (They can differ if you had previously, manually, edited or deleted or renamed migration files)
To Fix This, rename migration A. either in the database or rename the filename. BUT make sure the changes matches up with what other developers on your team have in their databases (or the changes matches what on your production database)
- [Django]-Disable session creation in Django
- [Django]-How do I make many-to-many field optional in Django?
- [Django]-Django Rest JWT login using username or email?
2👍
The order of INSTALLED_APPS
seems important.
If you always put your recent works on top/beginning of the list they’ll always be loaded properly in regard to django.contrib.admin. Moving my works to the beginning of the INSTALLED_APPS
list fixed this problem for me.
The reason Kun Shi’s solution may have worked maybe it ran the migrations in a different order.
- [Django]-How to change site title, site header and index title in Django Admin?
- [Django]-Django: how to do calculation inside the template html page?
- [Django]-How do I run tests against a Django data migration?
2👍
How to fix (Without delete migration folder or entire database)
- Backup your database
- Comment out your app in INSTALLED_APPS and AUTH_USER_MODEL = ‘account.User’ in your settings.py
python manage.py admin zero
- Undo step 2
python manage.py migrate
Why this problem occured?
django admin app depends on AUTH_USER_MODEL
which is default auth model when you create your django project.
If you migrate project models before change the AUTH_USER_MODEL
, django admin app apply migration as django auth model dependency. However, you change that dependency and want to migrate models again. So, the problem is occured here; admin models applied before its dependency, which is your User model now, applied. Thus, You should revert admin models migrations and then try it again.
- [Django]-Django's Double Underscore
- [Django]-A field with precision 10, scale 2 must round to an absolute value less than 10^8
- [Django]-How to obtain and/or save the queryset criteria to the DB?
1👍
There is another reason besides user error that can lead to this sort of problem: a known issue with Django when it comes to squashed migrations.
We have a series of migrations that work perfectly fine in Python 2.7 + Django 1.11. Running makemigrations
or migrate
always works as it should, etc., even (for the purpose of testing) when the database is freshly re-created.
However, as we move a project to Python 3.6 (currently using the same Django 1.11) I’ve been stuck trying to figure out why the same migrations apply just fine only the first time they are run. After that, any attempt to run makemigrations
or even just migrate
results in the error:
django.db.migrations.exceptions.InconsistentMigrationHistory
wherein migration foo.0040-thing
is applied before its dependency foo.0038-something-squashed-0039-somethingelse
(we only happen to have that one squashed migration… the rest are much more straightforward).
What’s bugged me for a while is why this only happens on Python 3. If the DB is truly inconsistent this should be happening all the time. That the migrations appear to work perfectly fine the first time they are applied was equally confounding.
After much searching (including the present Q&A thread), I stumbled upon the aforementioned Django bug report. Our squash migration did indeed use the b
prefix in the replaces
line (e.g., replaces = [(b'', 'foo.0038-defunct'),.......]
Once I removed the b
prefixes from the replaces
line it all worked normally.
- [Django]-Django: using more than one database with inspectdb?
- [Django]-Charts in django Web Applications
- [Django]-Why does django run everything twice?
1👍
If you are working on an empty database a quick fix could be running the migrations for the account app, before any other app migrations.
$ ./manage.py migrate account
And then:
$ ./manage.py migrate
- [Django]-How to tell if a task has already been queued in django-celery?
- [Django]-Does SQLAlchemy have an equivalent of Django's get_or_create?
- [Django]-Django Rest Framework – Updating a foreign key
1👍
In my case, I was also using a custom user. the following steps work for me.
1 – delete all migrations and database tables (If you have testing data !!!!).
2 – Run migrations for the custom user app.
python manage.py makemigrations customAuth
python manage.py migrate customAuth
3 – Then run migration for the project level.
python manage.py makemigrations
python manage.py migrate
- [Django]-Jquery template tags conflict with Django template!
- [Django]-Django TypeError: get() got multiple values for keyword argument 'invoice_id'
- [Django]-Many-To-Many Fields View on Django Admin
0👍
First delete all the migrations and db.sqlite3 files and follow these steps:
$ ./manage.py makemigrations myapp
$ ./manage.py squashmigrations myapp 0001(may be differ)
Delete the old migration file and finally.
$ ./manage.py migrate
- [Django]-Django logging of custom management commands
- [Django]-How to check if ManyToMany field is not empty?
- [Django]-Jquery template tags conflict with Django template!
0👍
If that exception was reveal itself while you are trying to create your own User model instead of standard follow that instruction
I have found my problem resolve by follow that instruction step by step:
- Create a custom user model identical to auth.User, call it User (so
many-to-many tables keep the same name) and set db_table=’auth_user’
(so it uses the same table)- Throw away all your migrations
- Recreate a fresh set of migrations
- Sacrifice a chicken, perhaps two if you’re anxious; also make a backup of your database
- Truncate the django_migrations table
- Fake-apply the new set of migrations
- Unset db_table, make other changes to the custom model, generate migrations, apply them
It is highly recommended to do this on a database that enforces
foreign key constraints. Don’t try this on SQLite on your laptop and
expect it to work on Postgres on the servers!
- [Django]-Django migration strategy for renaming a model and relationship fields
- [Django]-Automatic creation date for Django model form objects
- [Django]-How to get the name of current app within a template?
0👍
If you set AUTH_USER_MODEL in settings.py like this:
AUTH_USER_MODEL = 'custom_user_app_name.User'
you should comment this line before run makemigration and migrate commands. Then you can uncomment this line again.
- [Django]-Get count of related model efficiently in Django
- [Django]-Django: why i can't get the tracebacks (in case of error) when i run LiveServerTestCase tests?
- [Django]-Change a field in a Django REST Framework ModelSerializer based on the request type?
0👍
when you create a new project and with no apps, you run the
python manage.py migrate
the Django will create 10 tables by default.
If you want create a customer user model which inherit from AbstractUser
after that, you will encounter this problem as follow message:
django.db.migrations.exceptions.InconsistentMigrationHistory:
Migration admin.0001_initial is applied before its dependency
account.0001_initial on database ‘default’.
finally,
I drop my entire databases and run
- [Django]-ForeignKey to abstract class (generic relations)
- [Django]-Difference between User.objects.create_user() vs User.objects.create() vs User().save() in django
- [Django]-Django Form File Field disappears on form error
0👍
I encountered this when migrating from Wagtail 2.0 to 2.4, but have seen it a few other times when a third party app squashes a migration after your current version but before the version you’re migrating to.
The shockingly simple solution in this case at least is:
./manage.py migrate
./manage.py makemigrations
./manage.py migrate
i.e. run a single migrate before trying to makemigrations.
- [Django]-Django: Get list of model fields?
- [Django]-Whats the difference between using {{STATIC_URL}} and {% static %}
- [Django]-405 "Method POST is not allowed" in Django REST framework
0👍
This Problem will come most of the time if you extend the User Model post initial migration. Because whenever you extend the Abstract user it will create basic fields which were present un the model like email, first_name, etc.
Even this is applicable to any abstract model in django.
So a very simple solution for this is either create a new database then apply migrations or delete [You all data will be deleted in this case.] the same database and reapply migrations.
- [Django]-How do I create a slug in Django?
- [Django]-Images from ImageField in Django don't load in template
- [Django]-Get Timezone from City in Python/Django
0👍
I have to drop my database to and then run makemigrations and migrate again for this to be resolved on my part.
- [Django]-Django form: what is the best way to modify posted data before validating?
- [Django]-Dynamic choices field in Django Models
- [Django]-Django test app error – Got an error creating the test database: permission denied to create database
0👍
delete migrations folder and db.sqlite3 and type in the cmd
python manage.py makemigrations
- [Django]-Get user profile in django
- [Django]-How do I do an OR filter in a Django query?
- [Django]-How do I get the class of a object within a Django template?
0👍
django.db.migrations.exceptions.InconsistentMigrationHistory #On Creating Custom User Model
I had that same issue today, and none of the above solutions worked, then I thought to erase all the data from my local PostgreSQL database using this following command
-- Drop everything from the PostgreSQL database.
DO $$
DECLARE
q TEXT;
r RECORD;
BEGIN
-- triggers
FOR r IN (SELECT pns.nspname, pc.relname, pt.tgname
FROM pg_catalog.pg_trigger pt, pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace AND pc.oid=pt.tgrelid
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pt.tgisinternal=false
) LOOP
EXECUTE format('DROP TRIGGER %I ON %I.%I;',
r.tgname, r.nspname, r.relname);
END LOOP;
-- constraints #1: foreign key
FOR r IN (SELECT pns.nspname, pc.relname, pcon.conname
FROM pg_catalog.pg_constraint pcon, pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace AND pc.oid=pcon.conrelid
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pcon.contype='f'
) LOOP
EXECUTE format('ALTER TABLE ONLY %I.%I DROP CONSTRAINT %I;',
r.nspname, r.relname, r.conname);
END LOOP;
-- constraints #2: the rest
FOR r IN (SELECT pns.nspname, pc.relname, pcon.conname
FROM pg_catalog.pg_constraint pcon, pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace AND pc.oid=pcon.conrelid
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pcon.contype<>'f'
) LOOP
EXECUTE format('ALTER TABLE ONLY %I.%I DROP CONSTRAINT %I;',
r.nspname, r.relname, r.conname);
END LOOP;
-- indicēs
FOR r IN (SELECT pns.nspname, pc.relname
FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pc.relkind='i'
) LOOP
EXECUTE format('DROP INDEX %I.%I;',
r.nspname, r.relname);
END LOOP;
-- normal and materialised views
FOR r IN (SELECT pns.nspname, pc.relname
FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pc.relkind IN ('v', 'm')
) LOOP
EXECUTE format('DROP VIEW %I.%I;',
r.nspname, r.relname);
END LOOP;
-- tables
FOR r IN (SELECT pns.nspname, pc.relname
FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pc.relkind='r'
) LOOP
EXECUTE format('DROP TABLE %I.%I;',
r.nspname, r.relname);
END LOOP;
-- sequences
FOR r IN (SELECT pns.nspname, pc.relname
FROM pg_catalog.pg_class pc, pg_catalog.pg_namespace pns
WHERE pns.oid=pc.relnamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pc.relkind='S'
) LOOP
EXECUTE format('DROP SEQUENCE %I.%I;',
r.nspname, r.relname);
END LOOP;
-- extensions (only if necessary; keep them normally)
FOR r IN (SELECT pns.nspname, pe.extname
FROM pg_catalog.pg_extension pe, pg_catalog.pg_namespace pns
WHERE pns.oid=pe.extnamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
) LOOP
EXECUTE format('DROP EXTENSION %I;', r.extname);
END LOOP;
-- aggregate functions first (because they depend on other functions)
FOR r IN (SELECT pns.nspname, pp.proname, pp.oid
FROM pg_catalog.pg_proc pp, pg_catalog.pg_namespace pns, pg_catalog.pg_aggregate pagg
WHERE pns.oid=pp.pronamespace
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')
AND pagg.aggfnoid=pp.oid
) LOOP
EXECUTE format('DROP AGGREGATE %I.%I(%s);',
r.nspname, r.proname,
pg_get_function_identity_arguments(r.oid));
END LOOP;
-- routines (functions, aggregate functions, procedures, window functions)
IF EXISTS (SELECT * FROM pg_catalog.pg_attribute
WHERE attrelid='pg_catalog.pg_proc'::regclass
AND attname='prokind' -- PostgreSQL 11+
) THEN
q := 'CASE pp.prokind
WHEN ''p'' THEN ''PROCEDURE''
WHEN ''a'' THEN ''AGGREGATE''
ELSE ''FUNCTION''
END';
ELSIF EXISTS (SELECT * FROM pg_catalog.pg_attribute
WHERE attrelid='pg_catalog.pg_proc'::regclass
AND attname='proisagg' -- PostgreSQL ≤10
) THEN
q := 'CASE pp.proisagg
WHEN true THEN ''AGGREGATE''
ELSE ''FUNCTION''
END';
ELSE
q := '''FUNCTION''';
END IF;
FOR r IN EXECUTE 'SELECT pns.nspname, pp.proname, pp.oid, ' || q || ' AS pt
FROM pg_catalog.pg_proc pp, pg_catalog.pg_namespace pns
WHERE pns.oid=pp.pronamespace
AND pns.nspname NOT IN (''information_schema'', ''pg_catalog'', ''pg_toast'')
' LOOP
EXECUTE format('DROP %s %I.%I(%s);', r.pt,
r.nspname, r.proname,
pg_get_function_identity_arguments(r.oid));
END LOOP;
-- nōn-default schemata we own; assume to be run by a not-superuser
FOR r IN (SELECT pns.nspname
FROM pg_catalog.pg_namespace pns, pg_catalog.pg_roles pr
WHERE pr.oid=pns.nspowner
AND pns.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast', 'public')
AND pr.rolname=current_user
) LOOP
EXECUTE format('DROP SCHEMA %I;', r.nspname);
END LOOP;
-- voilà
RAISE NOTICE 'Database cleared!';
END; $$;
After this you can run django command for migrations
python manage.py makemigrations
python manage.py migrate
And Absolutely that will work . Thank You.
- [Django]-Django model blank=False does not work?
- [Django]-Django REST Framework : "This field is required." with required=False and unique_together
- [Django]-How to disable admin-style browsable interface of django-rest-framework?
0👍
These steps can as well work
- Drop your entire database
- Make a new migration
These few steps can solve it for you, and I think its best when you have multiple contributors to the sam project.
- [Django]-How to server HTTP/2 Protocol with django
- [Django]-How can I disable logging while running unit tests in Python Django?
- [Django]-Speeding up Django Testing
0👍
Since you are using a custom User model, you can first comment out
INSTALLED_APPS = [
...
#'django.contrib.admin',
...
]
in your Installed_Apps settings. And also comment
urlpatterns = [
# path('admin/', admin.site.urls)
....
....
]
in your base urls.py
Then run
python manage.py migrate.
When done uncomment
'django.contrib.admin'
and
path('admin/', admin.site.urls)
- [Django]-Django: How to get related objects of a queryset?
- [Django]-Django logging of custom management commands
- [Django]-Django custom management commands: AttributeError: 'module' object has no attribute 'Command'
0👍
How to solve a weird InconsistentMigrationHistory issue in production
The logs looked like it worked fine:
>>> ./manage migrate
====== Migrations =====
Running migrations:
Applying app.0024_xxx... OK
Applying app.0025_yyy... OK
But then
>>> ./manage migrate
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration app.0025_yyy is applied before its dependency app.0024_xxx on database 'default'.
How to solve?
Change dependency of app.0025_yyy.py manually from 0024_xxx
to 0023_prior_migration_name
Then:
>>> ./manage.py makemigrations --merge
Created new merge migration /app/src/app/migrations/0026_merge_20220809_1021.py
>>> ./manage.py migrate
Running migrations:
Applying app.0024_xxx... OK
Applying app.0026_merge_20220809_1021... OK
This solves the issue, but if you do not want to commit your changes you can just revert everything by doing:
>>> ./manage.py migrate app 0023
Running migrations:
Rendering model states... DONE
Unapplying app.0026_merge_20220809_1021... OK
Unapplying app.0024_xxx... OK
Unapplying app.0025_yyy... OK
Revert dependency change of 0025_yyy and delete merge migration.
>>> ./manage migrate
====== Migrations =====
Running migrations:
Applying app.0024_xxx... OK
Applying app.0025_yyy... OK
- [Django]-How to use Django ImageField, and why use it at all?
- [Django]-Django testing: Test the initial value of a form field
- [Django]-Get count of related model efficiently in Django
0👍
For me, I wrote this line:
AUTH_USER_MODEL = ‘myApp.CustomUser’
after INSTALLED_APPS, and this solved the problem.
- [Django]-Django 2, python 3.4 cannot decode urlsafe_base64_decode(uidb64)
- [Django]-How do I run tests against a Django data migration?
- [Django]-Migrating Django fixtures?
-1👍
first of all backup your data. (copy your db file).
delete sqlite.db and also the migration folder.
then, run these commands:
./manage.py makemigrations APP_NAME
./manage.py migrate APP_NAME
after deleting the DB file and migration folder make sure that write the application name after the migration commands.
- [Django]-Django 1.5b1: executing django-admin.py causes "No module named settings" error
- [Django]-How to get a favicon to show up in my django app?
- [Django]-Negating a boolean in Django template
-1👍
Okay, before you do anything weird or nuclear, first just drop your database and rebuild it.
If using POsgres –
DROP SCHEMA public CASCADE;
CREATE SCHEMA PUBLIC;
Then just remake your migrations
./manage.py migrate
This is the most basic solution, which typically will clear things up. Don’t just go remaking the migrations until absolutely neccessary.
- [Django]-How do I raise a Response Forbidden in django
- [Django]-Where does pip install its packages?
- [Django]-ForeignKey to abstract class (generic relations)
-1👍
Comment django.contrib.admin from installed apps and also comment path(‘admin/’, admin.site.urls),then rerun makemigrations and then migrate. It will solve your issue. For more info go here
- [Django]-How to make an auto-filled and auto-incrementing field in django admin
- [Django]-How to test Django's UpdateView?
- [Django]-How to implement followers/following in Django