Python Django auth+;MySQL迁移,行大小太大
此迁移文件失败,该文件包含在contrib.auth中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
/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'