Ville Silventoinen wrote: > On Fri, 23 Mar 2007, Richard Megginson wrote: > >> Ville Silventoinen wrote: >>> 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". >> That usually means there are duplicate entries in your userRoot.ldif >> file - can you post it somewhere and post the link to it here? I'd >> rather not spam the list with a large ldif file. > > Thanks Richard! You were right, all the entries were defined twice in > the file. I don't understand how that happened, I used the "Export > Databases" > task in the Console to create the file. If the file already exists, > does it append new entries to it? I must have done something wrong... It might append to it. I'm not sure. > > Just tested the import, it works very well. Entries are modified, > removed and added to restore the original database. It's very fast too > (my test server runs on an old Pentium 3): > > Processed 9854 entries in 9 seconds. (1094.89 entries/sec) > > Thank you again! > > Ville > > -- > Fedora-directory-users mailing list > Fedora-directory-users at redhat.com > https://www.redhat.com/mailman/listinfo/fedora-directory-users -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 3245 bytes Desc: S/MIME Cryptographic Signature Url : http://lists.fedoraproject.org/pipermail/389-users/attachments/20070323/b8bffad6/attachment.bin