CKAN использует jsonpdataproxy.appspot.com вместо локального набора данных.

Я перехожу с CKAN 2.3 на CKAN 2.5.2. Миграция прошла успешно, но в сетке данных данные не отображаются, потому что они направляются на jsonpdataproxy.appspot.com, а не запрашиваются напрямую к набору данных.

Набор данных включен и работает правильно. Я тестирую это с помощью curl -I -k -X GET "https://127.0.0.1:444/api/3/action/datastore_search?resource_id=_table_metadata"

Если я вернусь к CKAN 2.3, изменив только код и схему Solr, а не файл конфигурации или другую конфигурацию, сетка данных снова отобразится. Есть совет по решению проблемы?

Спасибо


person Víctor García Guillén    schedule 30.09.2016    source источник
comment
С этим путем обновления я могу представить, что вы страдаете от неправильной настройки поля datastore_active (например, github. com/ckan/ckan/pull/2234), но вы, кажется, нашли решение для этого. Вы выполнили обновление БД как часть обновления?   -  person Matt Fullerton    schedule 04.10.2016
comment
Да, проблема заключалась в том, что поле datastore_active всегда имело ложное значение. Я также выполняю обновление БД.   -  person Víctor García Guillén    schedule 06.10.2016


Ответы (1)


Наконец проблема была решена.

Я вижу, что проблема заключалась в том, что переменная datastore_active имела значение false, и поэтому Ckan использует jsonpdataproxy.appspot.com.

Глядя в код, где эта переменная наконец изменена, я обнаружил, что эта переменная стабилизирована в таблице resource в столбце extras как json. Я обновил все ресурсы (update resource set extras ='{"datastore_active": true}';) и восстановил индекс Solr, и сетка данных снова отображается.

Выполняю команду:

paster --plugin=ckan views create --yes --config=/etc/ckan/${BASE_NAME}/production.ini --no-default-filters

Но он возвращает следующую ошибку:

/usr/local/ckan/venv_test/lib/python2.6/site-packages/sqlalchemy/sql/default_comparator.py:33: SAWarning: The IN-predicate on "group.name" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate. Consider alternative strategies for improved performance. return o[0](self, self.expr, op, *(other + o[1:]), **kwargs) 2016-10-03 13:40:56,802 INFO [ckan.lib.cli] Done

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

person Víctor García Guillén    schedule 04.10.2016
comment
Я не уверен, работает ли эта команда или нет, потому что я сделал это при предыдущей миграции на CKAN 2.3, и представления отображаются правильно, поэтому, возможно, представления были созданы правильно раньше. Однако команда возвращает нулевой код возврата и сообщение ok 2016-10-03 13:40:56,802 INFO [ckan.lib.cli] Done. - person Víctor García Guillén; 06.10.2016