tortoise/tortoise-orm
GitHub で見るunique indexes (for unique_together) on nullable columns need to be optionable for nulls not distinct
Open
#1,641 opened on 2024年6月6日
enhancementgood first issue
説明
assume that i have two models shop, customer. each shop can have only one customer with an unique phone number till deletes it. please pay attention that customer's phone_number is not unique in column. that is unique together with its shop and delete state.
from tortoise import Model, fields
class Base(Model):
deleted_at = fields.DateTimeField(null=True)
class Meta:
abstract = True
class Shop(Base):
title = fields.CharField(...)
class Customer(Base):
phone_number = fields.CharField(...) # not used unique here as you expect
shop = fields.ForeignKeyField('models.Shop', 'customers', fields.CASCADE)
class Meta:
unique_together = ('shop_id', 'phone_number', 'deleted_at')
but this simple code is not work as i expected
in postgres that i tested, created index did'nt follow by nulls not distinct
when not follow. unique index considers nulls not equal.
tortoise version : 0.21.3