我在将我的 web 应用程序从 django-ldapdb 0.9.0 升级到 1.3.0 时遇到了一个问题(因为它被打包在 Debian Buster 中)。它会创建失败的迁移。
似乎 django-ldapd 强制dn
作为模型的主键(见这里,但我不想破解 django-ldapdb 也不能避免在我的应用程序中迁移),所以我尝试删除模型中的现有主键,但这没有用...
这是创建错误迁移的模型之一的示例(在 0.9.0 中运行良好):
class LdapServiceUserGroup(ldapdb.models.Model):
"""
Class for representing an LDAP userservice entry.
Un group user de service coté ldap. Dans userservicegroupdn
(voir dans settings_local.py)
"""
# LDAP meta-data
base_dn = LDAP['base_userservicegroup_dn']
object_classes = ['groupOfNames']
# attributes
name = ldapdb.models.fields.CharField(
db_column='cn',
max_length=200,
)
members = ldapdb.models.fields.ListField(
db_column='member',
blank=True
)
def __str__(self):
return self.name
因此,在运行时,makemigrations
它会创建一个设置dn
为主键的迁移。接着 :
File "/usr/lib/python3/dist-packages/MySQLdb/connections.py", line 292, in query
_mysql.connection.query(self, query)
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server ver
sion for the right syntax to use near ')' at line 1")
(完整的错误在这里,但并不真正相关)