Django-在unique_together列上限制键大小

时间:2018-12-31 14:27:05

标签: python django django-models

我使用MySQL,试图创建一个包含多个字段的组合键的表。

问题是某些字段很大(255-1024长度),如果我尝试运行迁移,则会得到:

django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')

我发现无需增加数据库的密钥长度(或更改其他数据库/表设置),而是可以限制迁移文件中用作密钥的字段的值,以使其保留在最大密钥之内长度,像这样:

ALTER TABLE <table> ADD UNIQUE KEY `<table>_composite_key` (`col1`, `col2`(75), `col3`, `col4`, `col5`(150));

但是,如果我要更改数据库引擎,这将是一个问题,因为该语法可能与其他语法不兼容。

所以我想知道是否有一种方法可以对unique_together中的每个字段施加限制?

谢谢!

0 个答案:

没有答案