2016-02-17 7 views
1

J'écris un petit programme Python qui charge des documents dans couchdb. Il serait très pratique de vérifier si une base de données avec un certain nom existe déjà, donc je peux en créer une nouvelle ou ouvrir celle existante. Ce que je veux faire est quelque chose comme ceci:python-couchdb: Comment vérifier si la base de données existe déjà

import couchdb 

def connect(url, dbName): 
    server = couchdb.Server(url) 
    if dbName exists: # how do I do this? 
     return server[dbName] 
    else: 
     return server.create(dbName) 

Je connais un try-except bloc ferait l'affaire, mais il est pas là une façon plus élégante?

Répondre

4

La meilleure façon que je peux penser est:

import couchdb 
server = couchdb.Server("http://localhost:5984") 
"dataBaseName" in server 

Retour True si une base de données avec le nom existe, False autrement

https://github.com/djc/couchdb-python/blob/master/couchdb/client.py#L90-L101

+0

Merci pour votre réponse. C'est en effet beaucoup plus agréable. –

+0

J'ai juste essayé ceci et cela fonctionne parfaitement. :-) – Robert

+0

Il existe de bons exemples de commandes simples pour couchdb utilisant python dans ce lien: https://gist.github.com/marians/8e41fc817f04de7c4a70. – haper

1

Vous pouvez faire quelque chose comme:

try: 
    couch = couchdb.Server() # assuming localhost 
    db = couch['existent'] 
except: 
    db = couch.create('somedb') 
+0

C'est ce que j'ai fini par faire. On dirait qu'il n'y a pas de meilleure solution. –