Django.db.utils.ProgrammingError: relation does not exist LINE 1
Я столкнулся с проблемой при миграции БД с помощью django:
Я развернул приложение в heroku и получил ошибки, поэтому я попытался изменить sqlite db на psql перед коммитом в heroku, но после выполнения этого учебника миграции больше не работают, я застрял на 3-м шаге учебника.
Я попробовал следующее:
- Delete migrations folder from myBlog
- Delete db.sqlite3 file
- After removing the files/folders above I tried python manage.py makemigrations and got the following error:
- Trying to run the server locally now, doesn't work.
При развертывании его в heroku я получил ProgrammingError - что-то близкое к тому, что я получаю сейчас. Я попытался запустить:
heroku run python manage.py migrate
Но приложение возвращает мне ту же ошибку, что и в начале сообщения.
Мой файл settings.py:
Для получения любой другой дополнительной необходимой информации, пожалуйста, сообщите мне.
Вы не должны были удалять папку migrations. Добавьте эту папку в ваше приложение и добавьте в нее файл init. Затем создайте миграции локально. Вы должны создавать миграции локально. Heroku не должен (и не будет) создавать файлы миграций. Heroku просто выполняет ваш код. Кроме того, если данные в базе данных не важны, вы можете пересоздать db, чтобы обновить таблицу миграций. Или вы можете обновить ее вручную.
Шаги
1. Creating a migration folder
cd ./your_app
mkdir migrations
cd migrations
touch __ini__.py
2. Creating migrations
./manage.py makemigrations
3. Pushing on heroku
4. Applying migrations
heroku run python manage.py migrate
P.S.: Я думаю, что Heroku имеет инструменты для управления приложением Django. Пожалуйста, обратитесь к документации. Я думаю, что применение миграций должно быть автоматическим.
Вы должны выполнить шаги 1-3 локально.
Вы можете заново создать базу данных на heroku или сбросить ее. Если вы создаете базу данных заново, не забудьте изменить параметры доступа в настройках проекта