我希望在我的Django项目中使用PostgreSQL特定的ArrayField,但是在运行makemigrations之后,它不会出现在迁移中。有什么想法吗?
Django v2.1 PostgreSQL v9.6.6
# Models.py
from django.db import models
from django.contrib.postgres.fields import ArrayField
class MyClassName(models.Model):
udi = ArrayField(models.CharField()),
version = models.IntegerField()
然后我运行:python3 manage.py makemigrations
# 0001_initial.py
migrations.CreateModel(
name='MyClassName',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('version', models.IntegerField()),
],
),
如您所见,可疑字段'udi'丢失了。
答案 0 :(得分:1)
问题是ArrayField()
末尾的逗号,CharField
也需要max_length
。
class MyClassName(models.Model):
udi = ArrayField(models.CharField(max_length=10))
version = models.IntegerField()
再次运行makemigrations
,您将获得所需的迁移。