使用 RDS 在 Elastic Beanstalk 上的 Django 中向现有模型添加新字段时出错
Error when adding new field to existing model in Django on Elastic Beanstalk using RDS
当我尝试向 Django 中的现有模型添加新字段时出现错误。它使用 MySQL RDS 数据库托管在 elastic beanstalk 上。
这是我尝试访问包含新字段的模型时的错误:
(1054, "Unknown column 'existing_model.new_field' in 'field list'")
有没有更好的方法来处理 EB 上 Django 中的迁移?这是我的 .config 文件:
container_commands:
01_makemigrations:
command: "source /opt/python/run/venv/bin/activate && python manage.py makemigrations --noinput"
leader_only: true
02_migrate:
command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput"
leader_only: true
03_createsu:
command: "source /opt/python/run/venv/bin/activate && python manage.py createsu"
leader_only: true
04_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"
有什么帮助吗?谢谢!
原来我必须在 eb deploy
之前在本地 运行 python manage.py makemigrations
。这样,迁移文件就创建好了,当 eb 实例上的 migrate
为 运行 时,它知道如何相应地更改数据库。
我的 .config 文件现在是:
container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput"
leader_only: true
02_createsu:
command: "source /opt/python/run/venv/bin/activate && python manage.py createsu"
leader_only: true
03_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"
当我尝试向 Django 中的现有模型添加新字段时出现错误。它使用 MySQL RDS 数据库托管在 elastic beanstalk 上。
这是我尝试访问包含新字段的模型时的错误:
(1054, "Unknown column 'existing_model.new_field' in 'field list'")
有没有更好的方法来处理 EB 上 Django 中的迁移?这是我的 .config 文件:
container_commands:
01_makemigrations:
command: "source /opt/python/run/venv/bin/activate && python manage.py makemigrations --noinput"
leader_only: true
02_migrate:
command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput"
leader_only: true
03_createsu:
command: "source /opt/python/run/venv/bin/activate && python manage.py createsu"
leader_only: true
04_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"
有什么帮助吗?谢谢!
原来我必须在 eb deploy
之前在本地 运行 python manage.py makemigrations
。这样,迁移文件就创建好了,当 eb 实例上的 migrate
为 运行 时,它知道如何相应地更改数据库。
我的 .config 文件现在是:
container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput"
leader_only: true
02_createsu:
command: "source /opt/python/run/venv/bin/activate && python manage.py createsu"
leader_only: true
03_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput"