[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: objectClasses and migrating to 2.1.x



>>I see lots of examples in the documentation where entries have a full swag
>>of objectClass attributes e.g.
>>   sn: Jensen
>>   cn: Babs Jensen
>>   objectClass: top
>>   objectClass: person
>> Yet in our 2.0.25 directory, we merely have e.g.:
>>   sn: Fred
>>   cn: Fred Nerk
>>   objectClass: person
>> i.e. without the "top".  There are in fact many such entries without "top"
>> (and I was not around when they were made).  I note that "GQ" insists upon
>> having "top" etc.
>> I suspect this will cause trouble when migrating to 2.1.x, right?
>I have a test db running under Openldap 2.1.10 on port 9009.
>I just stopped slapd on that db, slapcat'ted the db (BDB 4.1.24) to an
>ldif, vi'ed the ldif to remove all the objectClass: top lines (could
>have used sed), cp'ed the ldif somewhere else, mv'ed the database dir to
>something else, created a new dbase dir, cp'ed th ldif to it and did
>slapadd on the ldif.
>No problem with the objectClass: top lines, the database just works :-)
>GQ 0.7.0beta2 had no problems with it. I was able to add new top
>objectClasses with GQ, but they're not necessary for things to work -
>though I think all new objects should have them..

top is an abstract objectclass that is the parent of all other
objectclasses.  It primarily makes "objectclass" a required attribute of
all objects.  Syntactically it is required, if not in this
implementation.  I'd put it there, just in case,  as it is always better
to be "right" than "just working" as the absence may (or may not) have
subtle unintended side effects.  I have encountered some utilities that
use objectclass=top in their searches, which the expectation of finding
it on every object.