2012-09-29 6 views
0

Nous avons déplacé le fichier .couch d'un lecteur à un autre car le lecteur d'origine avait atteint 100% d'espace. Ensuite, nous avons remonté le nouveau lecteur vers le répertoire ancien/original. En d'autres termes, rien n'a changé.CouchDB View ne répond pas

Maintenant, je suis en mesure de voir les documents, mais pas en mesure d'exécuter les vues.

Il se bloque simplement.

Une idée de ce que le problème pourrait être?

+1

Regardez les journaux. –

Répondre

1

Généralement, mélanger des fichiers sans redémarrer CouchDB lui-même est comme déplacer la chaise sous votre grand-mère pendant qu'elle est assise dessus. Tôt ou tard, elle remarquera ... Je suppose que vous avez déplacé une sous-section du dossier couchdb, et pas assez pour que les vues fonctionnent correctement.

Si vous GET $COUCH/$DB/_design/$DDOC/_info vous verrez un champ "signature": "e5c78acfda577dfba5abb602c432ead2", où la chaîne hexadécimale est liée au nom du fichier de vue sous-jacent pour ce ddoc.

Si vous utilisez GET $COUCH/_config en utilisant les informations d'identification d'administrateur, vous pouvez voir le chemin d'accès à la vue & répertoires d'index. Vous devriez vous assurer que ceux-ci n'ont pas été foutu pendant vos remises.

Dans mon cas, il ressemble à ceci:

"database_dir": "/usr/local/var/lib/couchdb", 
"index_dir": "/usr/local/var/lib/couchdb", 

et index_dir je peux voir /usr/local/var/lib/couchdb/.testy_design/mrview/e5c78acfda577dfba5abb602c432ead2.view. C'est sur le maître 1.3.0-a donc l'emplacement est différent pour 1.2.0 et ci-dessous. Quoi qu'il en soit, les paramètres database_dir et index_dir dans config doivent correspondre à ce qui se trouve sur le disque. Regarde ça.

Vous devez remonter l'ensemble des fichiers /usr/local/var/lib/couchdb (y compris les vues si vous ne souhaitez pas les reconstruire) et non certains sous-composants de celui-ci. Sinon, il peut s'agir simplement d'un problème de mise en cache et après le redémarrage de CouchDB, les choses vont s'arranger. Typiquement, Couch se fie à la mise en cache et ne s'attend pas à ce que la chaise soit déplacée :-).