Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django auth+;MySQL迁移,行大小太大_Python_Mysql_Django - Fatal编程技术网

Python Django auth+;MySQL迁移,行大小太大

Python Django auth+;MySQL迁移,行大小太大,python,mysql,django,Python,Mysql,Django,此迁移文件失败,该文件包含在contrib.auth中 /Users/xxx/.virtualenvs/xxxx-0LdyW30-/lib/python3.8/site packages/django/contrib/auth/migrations/0012\u alter\u user\u first\u name\u max\u length.py from django.db import migrations, models class Migration(migrations.Mi

此迁移文件失败,该文件包含在contrib.auth中

/Users/xxx/.virtualenvs/xxxx-0LdyW30-/lib/python3.8/site packages/django/contrib/auth/migrations/0012\u alter\u user\u first\u name\u max\u length.py

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.AlterField(
            model_name='user',
            name='first_name',
            field=models.CharField(blank=True, max_length=150, verbose_name='first name'),
        ),
    ]

错误:

web_1 | MySQLdb._异常。操作错误:(1118,'行大小 太大。所用表类型的最大行大小,不计算在内 BLOBs,是65535。这包括存储开销,请查看手册。您可以 必须将某些列更改为文本或blob')

注意:我使用的是docker compose环境

更新:django.contrib.auth.models中的初始化迁移 --/Users/xxx/.virtualenvs/xxxx-0LdyW30-/lib/python3.8/site-packages/django/contrib/auth/migrations/0001_initial.py

导入django.contrib.auth.models
来自django.contrib.auth导入验证程序
从django.db导入迁移、模型
从django.utils导入时区
类迁移(migrations.Migration):
依赖项=[
('contenttypes','uuuu first'uuuuu'),
]
操作=[
migrations.CreateModel(
name='Permission',
田地=[
('id',models.AutoField(verbose_name='id',serialize=False,auto_created=True,primary_key=True)),
('name',models.CharField(max_length=50,verbose_name='name')),
('content_type',models.ForeignKey(
to='contenttypes.ContentType',
在_delete=models.CASCADE上,
到_field='id',
详细的\u name='content type',
)),
('codename',models.CharField(max_length=100,verbose_name='codename')),
],
选择权={
“订购”:[“内容类型应用程序标签”、“内容类型应用程序模型”、“代码名”],
'unique_-together':{('content_-type','codename')},
“详细名称”:“权限”,
'详细名称\复数':'权限',
},
管理者=[
('objects',django.contrib.auth.models.PermissionManager()),
],
),
migrations.CreateModel(
name='Group',
田地=[
('id',models.AutoField(verbose_name='id',serialize=False,auto_created=True,primary_key=True)),
('name',models.CharField(unique=True,max_length=80,verbose_name='name')),
('permissions',models.ManyToManyField(to='auth.Permission',verbose_name='permissions',blank=True)),
],
选择权={
“详细名称”:“组”,
“详细名称”“复数”:“组”,
},
管理者=[
('objects',django.contrib.auth.models.GroupManager()),
],
),
migrations.CreateModel(
name='User',
田地=[
('id',models.AutoField(verbose_name='id',serialize=False,auto_created=True,primary_key=True)),
('password',models.CharField(max_length=128,verbose_name='password'),
('last_login',models.DateTimeField(默认为timezone.now,verbose_name='last login')),
('is_superuser',models.BooleanField(
默认值=False,
help_text=”指定此用户拥有所有权限,而不显式分配这些权限。“,
详细的\u name='superuser status'
)),
('username',models.CharField)(
help_text='必选.30个字符或更少。仅限字母、数字和@/+/-/.'',unique=True,
最大长度=30,详细名称='username',
validators=[validators.unicoduerNameValidator()],
)),
('first_name',models.CharField(max_length=30,verbose_name='first name',blank=True)),
('last_name',models.CharField(max_length=30,verbose_name='last name',blank=True)),
('email',models.EmailField(最大长度=75,详细名称='email address',blank=True)),
('is_staff',models.BooleanField(
default=False,help_text='指定用户是否可以登录此管理站点。',
详细的\u name='staff status'
)),
('is_active',models.BooleanField(
默认值=True,详细的\u name='active',帮助\u文本=(
'指定是否应将此用户视为活动用户。取消选择此选项,而不是删除'
“账目。”
)
)),
('date_joined',models.DateTimeField(默认为timezone.now,verbose_name='date joined')),
(“组”,models.ManyToManyField(
to='auth.Group',verbose\u name='groups',blank=True,related\u name='user\u set',
相关的\u查询\u name='user',帮助\u文本=(
'此用户所属的组。用户将获得授予其每个组的所有权限'
“团体。”
)
)),
('user_permissions',models.ManyToManyField(
to='auth.Permission',verbose\u name='user permissions',blank=True,
帮助\u text='此用户的特定权限',相关的\u name='user\u set',
相关的\u查询\u name='user')
),
],
选择权={
“可交换”:“身份验证用户模型”,
'详细名称':'用户',
'详细名称\复数':'用户',
},
管理者=[
('objects',django.contrib.auth.models.UserManager()),
],
),
]
回购网址:


快速修复:

使用TextField而不是CharField作为first_name

数学:

  • MYSQL行中存储的数据的最大大小为65535字节。(阅读更多关于
    show create table auth_user
        -> ;
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table     | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | auth_user | CREATE TABLE `auth_user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `password` varchar(128) NOT NULL,
      `last_login` datetime(6) DEFAULT NULL,
      `is_superuser` tinyint(1) NOT NULL,
      `username` varchar(150) NOT NULL,
      `first_name` varchar(150) NOT NULL,
      `last_name` varchar(150) NOT NULL,
      `email` varchar(254) NOT NULL,
      `is_staff` tinyint(1) NOT NULL,
      `is_active` tinyint(1) NOT NULL,
      `date_joined` datetime(6) NOT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `username` (`username`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
    +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.001 sec)
    
    version: '3.7'
    
    services:
      db:
        image: mysql:5.7
        command: --innodb_strict_mode=0
        ports:
          - '3306:3306'
        environment:
          MYSQL_DATABASE: 'db_name'
          MYSQL_USER: 'username'
          MYSQL_PASSWORD: 'password'
          MYSQL_ROOT_PASSWORD: 'sa_password'