Django和Elasticbeanstalk:在本地已删除的列尚未在RDS上删除

时间:2019-01-21 17:41:56

标签: django amazon-web-services amazon-rds amazon-elastic-beanstalk

我将项目部署到eb中,即使eb上的表单提交也无法在eb上运行。我找到了原因。 即使过去我删除了该模型,该属性的一个不允许为空的属性仍然保留在RDS上。

日志错误是这样的

USD

如何处理此问题?有没有办法在RDS上手动删除该列?我正在使用ERROR: null value in column "a_variable" violates not-null constraint 作为数据库引擎。

1 个答案:

答案 0 :(得分:0)

您的RDS数据库只是一个普通的PostgreSQL数据库。如果确实需要直接访问它,则可以:

  • 创建一个安全组以将PostgreSQL端口(带TCP的5432)打开到您当前的IP地址。
  • 将安全组添加到您的RDS实例(暂时不要忘记稍后将其删除)
  • 使用您的django凭据在本地计算机上使用psql连接到RDS实例。
  • 运行常规SQL命令(ALTER TABLE table_name DROP COLUMN column_name;)删除列。小心!您正在直接操作数据库。

请确保我将检查django-migrations表以查看所有迁移是否都正确运行。如果不是这种情况,您可能会在以后的迁移中遇到问题。