Django迁移不会更改AWS Elastic Beanstalk中的数据库

reasm001

我已经使用AWS Elastic Beanstalk部署了Djnago应用程序。我添加了一些数据,并且一切正常。然后,我增加了MAX_LENGTH在model.py的CharField之一。我已经使用“ eb deploy”命令再次部署了该应用程序但这并没有增加数据库中的字段长度。如果我尝试添加subject_id大于10,则会出现此错误:django.db.utils.DataError:值对于类型字符变化(10)而言过长

Model.py:

class Subject(models.Model):
        #subject_id = models.CharField(max_length=10, blank=True)
        subject_id = models.CharField(max_length=50, blank=True)

0001_initial.py:

#Generated by Django 3.0.4 on 2021-02-18 18:54
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
    initial = True
    dependencies = [
        ('accounts', '0001_initial'),]
    operations = [
        migrations.CreateModel(
            name='Subject',
            fields=[('subject_id', models.CharField(blank=True, max_length=50)),],),]

我在.ebextensions / django_build.config文件中添加了迁移命令。迁移文件夹中的0001_initial.py文件显示更改。但是它不会在数据库中更新(AWS RDS postgresql)。我检查了postgresql数据库中的django_migrations表。它显示了当我第一次创建实例时发生的最后一次迁移。

我需要在现有数据库中更改主题模型的subject_id字段长度。任何帮助将不胜感激。

.ebextensions / django_build.config:

container_commands:
  01_create_log_folder:
    command: "mkdir -p log && chown webapp:webapp -R log"

  02_source_env:
    command: "source /etc/profile.d/sh.local"
    leader_only: true  
    
  03_database_migrations:
    command: "source /var/app/venv/*/bin/activate && python3 manage.py makemigrations --noinput && python3 manage.py migrate --noinput && deactivate"
    leader_only: true

django_migrations表:

select * from django_migrations;
 id |       app       |                   name                   |            applied            
----+-----------------+------------------------------------------+-----------------------
 28 | fileupload      | 0001_initial                             | 2021-01-22 11:42:40.726471+00
麦克风

由于修改后的迁移与0001_initial已应用的迁移具有相同的名称(),因此不会执行。您需要:

  • 创建一个新的迁移(0002_new_migration),以更改您在第一个迁移中创建的字段

或者

  • 首先回滚您拥有的迁移,然后应用修订后的迁移

要回滚所拥有的迁移,您需要通过SSH进入ELB实例:

Login via SSH - check your AWS console for specific instructions

然后运行以下命令重置accounts迁移

source /opt/python/run/venv/bin/activate
source /opt/python/current/env
cd /opt/python/current/app
./manage.py migrate accounts zero

下一步部署时,您将accounts从头开始创建模型,新的迁移将运行。

这与使用manage.py在本地反向迁移时没有什么不同migrate,只不过是在远程实例上进行迁移

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django迁移不会更改AWS Elastic Beanstalk中的数据库

来自分类Dev

Django AWS Elastic Beanstalk迁移数据库

来自分类Dev

AWS Elastic Beanstalk Django迁移

来自分类Dev

带有AWS Elastic Beanstalk的Flask SQLAlchemy数据库-浪费时间吗?

来自分类Dev

处理AWS Elastic Beanstalk多容器数据库和持久性存储

来自分类Dev

Laravel 5.2中具有AWS Elastic Beanstalk的会话不适用于SESSION_DRIVER作为cookie,文件或数据库

来自分类Dev

在AWS Elastic Beanstalk上使用Docker进行Django迁移

来自分类Dev

访问通过Elastic Beanstalk创建的RDS数据库

来自分类Dev

使用Elastic Beanstalk .ebextensions指定RDS数据库

来自分类Dev

同步本地和Elastic Beanstalk数据库?

来自分类Dev

连接到Amazon Elastic Beanstalk上的数据库

来自分类Dev

FTP with AWS elastic Beanstalk

来自分类Dev

Django迁移本地工作,但不迁移Elastic Beanstalk生产

来自分类Dev

AWS Elastic Beanstalk中的Laravel .env

来自分类Dev

AWS Elastic Beanstalk和Django模板目录

来自分类Dev

Django更改数据库中的迁移表名称

来自分类Dev

尝试从AWS Elastic Beanstalk Multicontainer中的私有Docker存储库中拉出时出现CannotPullContainerError

来自分类Dev

更改Gunicorn Elastic Beanstalk的超时

来自分类Dev

测试AWS Elastic Beanstalk扩展

来自分类Dev

使用AWS Elastic Beanstalk的FTP

来自分类Dev

AWS Elastic Beanstalk错误-乘客

来自分类Dev

AWS并分解Elastic Beanstalk实例

来自分类Dev

AWS Elastic Beanstalk调度部署

来自分类Dev

AWS Elastic Beanstalk部署顺序

来自分类Dev

Amazon Elastic Beanstalk上的MaxMind GeoIP库和数据库

来自分类Dev

Django Elastic Beanstalk秘密变量

来自分类Dev

Elastic Beanstalk上的Docker + Django

来自分类Dev

Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以

来自分类Dev

Rails AWS Elastic beantalk使用数据库适配器部署错误

Related 相关文章

  1. 1

    Django迁移不会更改AWS Elastic Beanstalk中的数据库

  2. 2

    Django AWS Elastic Beanstalk迁移数据库

  3. 3

    AWS Elastic Beanstalk Django迁移

  4. 4

    带有AWS Elastic Beanstalk的Flask SQLAlchemy数据库-浪费时间吗?

  5. 5

    处理AWS Elastic Beanstalk多容器数据库和持久性存储

  6. 6

    Laravel 5.2中具有AWS Elastic Beanstalk的会话不适用于SESSION_DRIVER作为cookie,文件或数据库

  7. 7

    在AWS Elastic Beanstalk上使用Docker进行Django迁移

  8. 8

    访问通过Elastic Beanstalk创建的RDS数据库

  9. 9

    使用Elastic Beanstalk .ebextensions指定RDS数据库

  10. 10

    同步本地和Elastic Beanstalk数据库?

  11. 11

    连接到Amazon Elastic Beanstalk上的数据库

  12. 12

    FTP with AWS elastic Beanstalk

  13. 13

    Django迁移本地工作,但不迁移Elastic Beanstalk生产

  14. 14

    AWS Elastic Beanstalk中的Laravel .env

  15. 15

    AWS Elastic Beanstalk和Django模板目录

  16. 16

    Django更改数据库中的迁移表名称

  17. 17

    尝试从AWS Elastic Beanstalk Multicontainer中的私有Docker存储库中拉出时出现CannotPullContainerError

  18. 18

    更改Gunicorn Elastic Beanstalk的超时

  19. 19

    测试AWS Elastic Beanstalk扩展

  20. 20

    使用AWS Elastic Beanstalk的FTP

  21. 21

    AWS Elastic Beanstalk错误-乘客

  22. 22

    AWS并分解Elastic Beanstalk实例

  23. 23

    AWS Elastic Beanstalk调度部署

  24. 24

    AWS Elastic Beanstalk部署顺序

  25. 25

    Amazon Elastic Beanstalk上的MaxMind GeoIP库和数据库

  26. 26

    Django Elastic Beanstalk秘密变量

  27. 27

    Elastic Beanstalk上的Docker + Django

  28. 28

    Elastic Beanstalk 应用程序无法连接到数据库,但服务器可以

  29. 29

    Rails AWS Elastic beantalk使用数据库适配器部署错误

热门标签

归档