mysql - Django中的ArrayField在进行迁移时出错
问题描述
我在我的应用程序中添加了 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 确保您的 DATABASE 配置。看起来您正在尝试将迁移提交到 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)
推荐阅读
- xml - XML 的元素多于 DTD 中定义的元素,无验证
- app-store-connect - App Store Connect API - 请求 24 小时数据?
- javascript - 由于 Razor 语法,ASP.Net 网页上的 Bing 地图无法呈现
- scala - JSON到数组的RDD(Spark Scala)
- installation - 如何在 Windows 10 上的 python 3.7.1 中成功安装 pip 加密
- c++ - 为什么复制构造函数使用 std::move 调用 const 变量
- html - Laravel,HTML:在 Main-Template 中插入单独的模板
- api - MS Graph SignInActivity 属性丢失?
- javascript - 如何使用递归更新局部范围的变量
- python - Python - 如何让 Selenium send_keys 在 IE11 中工作