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

标签 mysql django django-models django-rest-framework django-mysql

我已将 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/

相关文章:

php - POST数据未插入到sql表中

java - 无法连接本地mysql服务器

python - Django Heroku 错误 "Your models have changes that are not yet reflected in a migration"

php - 如何通过一个查询选择并获取 php mysql 中的两个表数据?

python - Form.media 没有被注入(inject)到模板中

Django 使用 Pillow 以不同格式保存图像

python-3.x - 如何在 Django Rest 框架中获取外键表值而不是 id?

python - syncdb 忽略导入的模型

python - Django is_valid() 不适用于 modelformset_factory

php - PDO 检索从中找到数据的列名称