gpt4 book ai didi

mysql - Django 中的 ArrayField 在进行迁移时出错

转载 作者:行者123 更新时间:2023-11-29 06:29:17 24 4
gpt4 key购买 nike

我已将 arrayfield 添加到我的应用程序中的模型中。下面是我的模型

class employees(models.Model):
firstName=models.CharField(max_length=10)
lastName=models.CharField(max_length=10)
tags_data = ArrayField(models.CharField(max_length=10, blank=True),size=8,default=list)

下面是我的迁移文件数据。

class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='employees',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('firstName', models.CharField(max_length=10)),
('lastName', models.CharField(max_length=10)),
('tags_data', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=10), default=list, size=8)),
],
),
]

当我进行迁移时,出现以下错误

django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[8] NOT NULL)' at line 1") 

语法有什么问题。请帮我看看我哪里出错了?

最佳答案

ArrayField 特定于 Postgres,并且是从 Postgres 库导入的。所有这些字段都可以从 django.contrib.postgres.fields 模块获得。

确保您的数据库配置为 Postgesql。看起来您正在尝试将迁移提交到 MySql。您应该设置本地 Postgres 数据库,并更新您的 settings.py 文件。

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'DATABASE NAME',
'USER': 'USER NAME',
'PASSWORD': 'USER PASSWORD',
'HOST': 'localhost',
'PORT': '5432',
}
}

并从 models.py 创建迁移

from django.db import models
from django.contrib.postgres.fields import ArrayField
# Create your models here.

class employees(models.Model):
firstName=models.CharField(max_length=10)
lastName=models.CharField(max_length=10)
tags_data = ArrayField(models.CharField(max_length=10, blank=True),size=8,default=list)

关于mysql - Django 中的 ArrayField 在进行迁移时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com