NotSupportedError при попытке создать первичный индекс в N1QL в Couchbase Python SDK

Я пытаюсь войти в новые запросы N1QL для Couchbase в Python. Я установил свою базу данных в Couchbase 4.0.0.

Моя первая попытка была получить все документы, как это:

from couchbase.bucket import Bucket

bucket = Bucket('couchbase://localhost/dafault')

rv = bucket.n1ql_query('CREATE PRIMARY INDEX ON default').execute()
for row in bucket.n1ql_query('SELECT * FROM default'):
    print row

Но это производит OperationNotSupportedError:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 2357, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1777, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Users/my_user/python_tests/test_n1ql.py", line 9, in <module>
    rv = bucket.n1ql_query('CREATE PRIMARY INDEX ON default').execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/couchbase/n1ql.py", line 215, in execute
    for _ in self:
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/couchbase/n1ql.py", line 235, in __iter__
    self._start()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/couchbase/n1ql.py", line 180, in _start
    self._mres = self._parent._n1ql_query(self._params.encoded)
couchbase.exceptions.NotSupportedError: <RC=0x13[Operation not supported], Couldn't schedule n1ql query, C Source=(src/n1ql.c,82)>

Вот номера версий всего, что я использую:

Couchbase Server: 4.0.0
couchbase python library: 2.0.2
cbc: 2.5.1
python: 2.7.8
gcc: 4.2.1

У кого-нибудь есть идея, что могло пойти не так? Я не мог найти решение этой проблемы до сих пор.

Был другой билет для node.js, где произошла та же проблема. Сначала было предложено включить n1ql для конкретного сегмента. Это также необходимо в Python?

2 ответа

Решение

Казалось бы, вы не настроили ни одного узла кластера с Query или же Index Сервисы. Таким образом, возвращаемая ошибка - это та, которая указывает, что ни один узел не доступен.

Я также получил похожую ошибку при попытке создать первичный индекс.

    Create a primary index...
Traceback (most recent call last):
  File "post-upgrade-test.py", line 45, in <module>
    mgr.n1ql_index_create_primary(ignore_exists=True)
  File "/usr/local/lib/python2.7/dist-packages/couchbase/bucketmanager.py", line 428, in n1ql_index_create_primary
    '', defer=defer, primary=True, ignore_exists=ignore_exists)
  File "/usr/local/lib/python2.7/dist-packages/couchbase/bucketmanager.py", line 412, in n1ql_index_create
    return IxmgmtRequest(self._cb, 'create', info, **options).execute()
  File "/usr/local/lib/python2.7/dist-packages/couchbase/_ixmgmt.py", line 160, in execute
    return [x for x in self]
  File "/usr/local/lib/python2.7/dist-packages/couchbase/_ixmgmt.py", line 144, in __iter__
    self._start()
  File "/usr/local/lib/python2.7/dist-packages/couchbase/_ixmgmt.py", line 132, in _start
    self._cmd, index_to_rawjson(self._index), **self._options)
couchbase.exceptions.NotSupportedError: <RC=0x13[Operation not supported], Couldn't schedule ixmgmt operation, C Source=(src/ixmgmt.c,98)>

Добавление узла запроса и индекса к кластеру решило проблему.

Другие вопросы по тегам