Django alter checkconstraint с полем json

Я хочу alter table добавить контрольное ограничение в mysql, если использовать sql, как показано ниже

ALTER TABLE Test
ADD CONSTRAINT chk_sss
CHECK(
  JSON_SCHEMA_VALID(
    '{
       "type":"object",
       "properties":{
         "latitude":{"type":"number", "minimum":-90, "maximum":90},
         "longitude":{"type":"number", "minimum":-180, "maximum":180}
       },
       "required": ["latitude", "longitude"]
    }',
    sss
  )
)
class Test(models.Model):
    sss = models.JSONField(null=True)
    class Meta:
        constraints = [
            CheckConstraint(
                check = ???????),
        ]

как написать этот sql в модели

Обычно, если данные структурированы, не имеет особого смысла хранить их в виде JSON-блоба в реляционной базе данных, поскольку это делает запросы менее выразительными и менее эффективными.

Так вы работаете с:

class Test(models.Model):
    # sss = models.JSONField(null=True)
    latitude = models.FloatField()
    longitude = models.FloatField()

    class Meta:
        constraints = [
            CheckConstraint(Q(latitude__range=(-90, 90)), name='latitude_range'),
            CheckConstraint(
                Q(longitude__range=(-180, 180)), name='longitude_range'
            ),
        ]
Вернуться на верх