Django и Elasticbeanstalk: столбец, который был удален на локальном компьютере, не был удален в RDS - PullRequest
0 голосов
/ 21 января 2019

Я развернул свой проект в eb, и отправка формы не работает на eb, даже если она работает на локальном компьютере. И я нашел причину. Один из атрибутов модели, который не может быть нулевым, все еще остается в RDS, даже если я удалил его в прошлом.

Ошибка в журнале:

ERROR:  null value in column "a_variable" violates not-null constraint

Как я могу справиться с этой проблемой? Есть ли способ удалить столбец вручную на RDS? Я использую PostgreSQL в качестве двигателя БД.

1 Ответ

0 голосов
/ 21 января 2019

Ваша база данных RDS - это обычная база данных PostgreSQL.Если вам действительно нужен прямой доступ к нему, вы можете:

  • Создать группу безопасности, чтобы открыть порт PostgreSQL (5432 с TCP) для вашего текущего IP-адреса.
  • Добавитьгруппа безопасности для вашего экземпляра RDS (временно, не забудьте удалить его позже)
  • Используйте psql на локальном компьютере для подключения к вашему экземпляру RDS с вашими учетными данными django.
  • Запуститеобычная команда SQL (ALTER TABLE table_name DROP COLUMN column_name;) для удаления столбца.Быть осторожен!вы напрямую управляете своей базой данных.

Чтобы убедиться, что я проверю таблицу django-migrations, чтобы убедиться, что все миграции были выполнены правильно.у вас могут возникнуть проблемы с последующими миграциями, если это не так.

...