Является ли Django множественным уникальным_все неправильно отображенным в PostgreSQL?
Когда я добавляю несколько unique_together
В кортежах в моей модели django отображение базы данных PostgreSQL выглядит неправильно (также в соответствии с предыдущим ответом SO на эту тему). Пример следует.
Это моя миграция:
migrations.CreateModel(
name='FinancialConcept',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('taxonomy', models.CharField(max_length=128)),
('name', models.CharField(max_length=256)),
('xbrl_element', models.CharField(max_length=256)),
('parent', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='analysis.FinancialConcept')),
],
),
migrations.AlterUniqueTogether(
name='financialconcept',
unique_together=set([('taxonomy', 'name'), ('taxonomy', 'xbrl_element'), ('parent', 'xbrl_element')]),
),
....
который я ожидал бы создать три UNIQUE
индексы, по одному на каждую пару. Но вместо этого то, что заканчивается отображением БД, таково:
Column | Type | Modifiers
--------------+------------------------+------------------------------ ------------------------------------------
id | integer | not null default nextval('analysis_financialconcept_id_seq'::regclass)
taxonomy | character varying(128) | not null
name | character varying(256) | not null
xbrl_element | character varying(256) | not null
parent_id | integer |
Indexes:
"analysis_financialconcept_pkey" PRIMARY KEY, btree (id)
"analysis_financialconcept_taxonomy_xbrl_element_d8b45254_uniq" UNIQUE CONSTRAINT, btree (taxonomy, xbrl_element)
"analysis_financialconcept_parent_id_51fc8021" btree (parent_id)
То есть один из UNIQUE
индексы верны, но два других отсутствуют.
Есть идеи, что вызывает это?
1 ответ
Вы пробовали кортеж из кортежей?
unique_together = (('taxonomy', 'name'), ('taxonomy', 'xbrl_element'), ('parent', 'xbrl_element'))