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 for the Python example!
Ville
--
Fedora-directory-users mailing list
Fedora-directory-users(a)redhat.com
https://www.redhat.com/mailman/listinfo/fedora-directory-users