i’m running this django app with postgresql db on digital ocean droplet, i’ve added a django model (table), when running makemigrations and migrate everything seems good, but when i try to render the page related to that model i get this error :
relation “app_table” does not exist LINE 1: SELECT COUNT(*)
I’ve tried many solutions except the one suggested to remove the entire database, i know it works, but i can’t simply remove my entire data!
do you guys have better solutions please ? much appreciated
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Heya,
The error
relation "app_table" does not exist
indicates that the PostgreSQL database doesn’t recognize the table associated with your Django model. There could be various reasons for this:makemigrations
andmigrate
appeared to work, there might have been a hiccup.Let’s go through potential solutions step by step:
1. Check Migration Files:
Ensure that the migration file created for the new model is correct. Look inside the
migrations
folder of your app and find the specific migration related to the creation of the new model.2. Ensure You’re Using the Right Database:
Check your
settings.py
to see if you’re connecting to the expected database. This is a common issue, especially if you have multiple databases or environments.3. Re-apply Migrations:
Sometimes, re-applying migrations can help:
This rolls back the migrations for the app (without deleting data for unrelated tables) and then re-applies them.
4. Database Router:
If you’re using multiple databases, ensure that you’ve set up the database routers correctly. The issue might be that your model is routed to a different database than you expect.
5. Manual SQL Check:
Connect to your PostgreSQL database directly:
Then, check if the table exists:
This command lists all tables. Ensure your table is in the list.
6. Check PostgreSQL Logs:
You can check the PostgreSQL logs for any errors or issues. The logs might provide more detailed information about any issues related to table creation.
7. Backup First:
Before making any significant changes, especially if you’re considering rolling back migrations or altering the database schema, always back up your database. You can do this using the
pg_dump
command:This will create a backup file named
backup.sql
.Conclusion:
The issue you’re facing is a common one with various potential causes. By carefully diagnosing the problem and checking each possibility step-by-step, you can typically resolve it without resorting to drastic measures like removing the entire database.
Hi there,
If you were to run
python manage.py showmigrations
are your migrations listed as 'applied`?What I could suggest is connecting to your Postgres database using
psql
or any other SQL client, and verifying that the database and the database tables actually exist. If you do that withpsql
you can follow the steps here:If everything looks good, I could suggest trying to reset the migrations and running them again from scratch.
Let me know how it goes!