1

我在将我的 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")

(完整的错误在这里,但并不真正相关)

4

0 回答 0