Relation does not exist error in Django

前端 未结 2 522
旧巷少年郎
旧巷少年郎 2021-01-17 11:32

I know there are many questions about this problem, I looked through the solutions and unfortunately none of them worked for me.

I created a new app called \"userma

相关标签:
2条回答
  • 2021-01-17 11:49

    I ran into this. In my case I had a previously working django app, not yet moved to production, so I deleted everything in my app's migrations folder, then using django extensions I wiped the postgresql database and cached files with:

    ./manage.py clear_cache
    ./manage.py clean_pyc
    ./manage.py reset_schema
    ./manage.py reset_db
    # then deleted all files (including __init__.py) from my app's migrations folder.
    

    I verified that my postgresql database had no tables. I then ran:

    ./manage.py makemigrations
    ./manage.py migrate
    

    Which gave the output:

    No changes detected
    ./manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
      (about 11 more lines of output here which are similar)
    

    It is notable that my model's names where nowhere in the migration. I printed the tables in my postgresql database and the Widget and Section tables were both missing. Running the app gave me this error (I substituted 'app' and 'model' for their real names):

    ProgrammingError at /my_path
    relation "app_model" does not exist
    LINE 1: ..."."my_field", "app_model"."my_field" FROM "appname...
    

    So the tables for the models were not being created in the database. My app's migrations folder was also completely empty. The solution was to just add an empty __init__.py to my app's migrations folder, and after that running makemigrations was able to create and save the migration file in the folder. This could then be executed with migrate. You can test this for yourself by running makemigrations with and without the __init__.py in the migrations/ folder.

    This solution was not mine but one given by user Ljubitel on another post but it was not the accepted answer there, but the accepted answer didn't work for me so I wrote this solution here to hopefully help others.

    0 讨论(0)
  • 2021-01-17 12:02

    Simply delete the database from pgAdmin = first disconnect the database then drop it.. Then create the database again with same name as previous..The delete the all files in migration.. Then run all the migration command then runserver.. Your code is debug enjoy :)

    0 讨论(0)
提交回复
热议问题