[Fedora-directory-users] Deleting database

Ville Silventoinen vsi at ebi.ac.uk
Fri Mar 23 15:52:32 UTC 2007


On Fri, 23 Mar 2007, Richard Megginson wrote:

> Ville Silventoinen wrote:
>> On Thu, 22 Mar 2007, Richard Megginson wrote:
>> 
>>> Ville Silventoinen wrote:
>>>> I'm using Fedora DS 1.0.4. I've written an application that uses Fedora 
>>>> DS and next I'm planning to write unit tests. I'm wondering if there is a 
>>>> way to delete the whole userRoot database and create it again? I searched 
>>>> the documentation and there seems to be a way to create the database from 
>>>> command line, but no way to delete it, except from the GUI?
>>> Just delete the entry (e.g. delete cn=userRoot,cn=ldbm 
>>> database,cn=plugins,cn=config).  You will have to do some sort of 
>>> recursive deletion to remove all of the child entries.  I think this is 
>>> what the GUI does - just check the access logs for the server after 
>>> deleting the database in the console.
>> 
>> Thank you Richard, that worked very well. I also delete the mapping tree 
>> entry, which maps the suffix to the backend database:
>>
>>   dn: cn="dc=ebi,dc=ac,dc=uk",cn=mapping tree,cn=config
>>   objectclass: top
>>   objectclass: extensibleObject
>>   objectclass: nsMappingTree
>>   nsslapd-state: backend
>>   nsslapd-backend: userRoot
>>   cn: dc=ebi,dc=ac,dc=uk
>> 
>> The GUI works slightly differently, it sets nsslapd-state to "disabled" and 
>> removes the nsslapd-backend attribute.
>> 
>> If anyone has a need for a script that can delete and create a database, I 
>> can send it to the list. I use Python with python-ldap package.
>> 
>> Thank you very much for a fast response!
> If you just want to restore the database to it's initial state, you can just 
> do an import - ldif2db or ldif2db.pl - this will remove the previous contents 
> and create a new database.  This might be sufficient for your purposes, 
> without having to delete the database and mapping tree entries.  See 
> ldif2db.pl for how to invoke an import operation via ldap

This may be a stupid question but how do I get ldif2db.pl to remove the 
previous contents so it can create the entries?

I tried like this:

   ./ldif2db.pl -v -D "cn=Directory Manager" -w mypassword -n userRoot -i /path/to/userRoot.ldif

but in the errors log it shows for every entry "WARNING: Skipping duplicate entry".

Thanks for the Python example!

Ville




More information about the Fedora-directory-users mailing list