Я выполнил инструкции по установке ckan в качестве пакета на Ubuntu 12.04 LTS.Не могу загрузить в хранилище данных в ckan 2.5.1: использование пользователя postgres вместо сконфигурированного
Я также настроил расширение хранилища данных. Базы данных были созданы, а пользователи и пароли по умолчанию настроены в /etc/ckan/default/production.ini
Моя проблема в том, что каждый раз, когда я хочу загрузить набор данных в DataStore (с помощью кнопки «Загрузить в DataStore "), сначала кажется, что все работает нормально. Но если я нажму где-нибудь еще, и нажмите на DataStore снова я получаю следующее красное окно ошибки:
Error: CKAN DataStore bad response. Status code: 409 Conflict. At: http://xubuntu12ltsckan/api/3/action/datastore_create . HTTP status code: 409 Response: {"help": " http://xubuntu12ltsckan/api/3/action/help_show?name=datastore_create ", "success": false, "error": {"fields": ["\"2016-01-07 14:35:12 ERROR : Error connecting to the server: FATAL: password... Requested URL: hhttp://xubuntu12ltsckan/api/3/action/datastore_create
(Третий URL искажены, потому что не имеют репутацию размещать более 2 адреса)
/var/log/apache2/datapusher.error.log перечисляет эти строки:
Fri Jan 22 13:38:24 2016] [error] /usr/lib/ckan/datapusher/lib/python2.7/site-packages/sqlalchemy/sql/sqltypes.py:185: SAWarning: Unicode type received non-unicode bind param value '42e50497-2231-4c86-b8db-d...'. (this warning may be suppressed after 10 occurrences)
[Fri Jan 22 13:38:24 2016] [error] (util.ellipses_string(value),))
[Fri Jan 22 13:38:24 2016] [error] Fetching from: http://xubuntu12ltsckan/dataset/f4f9e859-fa6a-4257-8727-32358b448864/resource/d938a82f-95f7-4abd-b982-b32174dfa584/download/pgadmin.log
[Fri Jan 22 13:38:24 2016] [error] Deleting "d938a82f-95f7-4abd-b982-b32174dfa584" from datastore.
[Fri Jan 22 13:38:24 2016] [error] Determined headers and types: [{'type': u'text', 'id': u'2016-01-07 14:35:12 ERROR : Error connecting to the server: FATAL: password authentication failed for user "postgres"'}]
[Fri Jan 22 13:38:24 2016] [error] Saving chunk 0
[Fri Jan 22 13:38:24 2016] [error] Job "push_to_datastore (trigger: RunTriggerNow, run = True, next run at: None)" raised an exception
[Fri Jan 22 13:38:24 2016] [error] Traceback (most recent call last):
[Fri Jan 22 13:38:24 2016] [error] File "/usr/lib/ckan/datapusher/lib/python2.7/site-packages/apscheduler/scheduler.py", line 512, in _run_job
[Fri Jan 22 13:38:24 2016] [error] retval = job.func(*job.args, **job.kwargs)
[Fri Jan 22 13:38:24 2016] [error] File "/usr/lib/ckan/datapusher/src/datapusher/datapusher/jobs.py", line 387, in push_to_datastore
[Fri Jan 22 13:38:24 2016] [error] records, api_key, ckan_url)
[Fri Jan 22 13:38:24 2016] [error] File "/usr/lib/ckan/datapusher/src/datapusher/datapusher/jobs.py", line 203, in send_resource_to_datastore
[Fri Jan 22 13:38:24 2016] [error] check_response(r, url, 'CKAN DataStore')
[Fri Jan 22 13:38:24 2016] [error] File "/usr/lib/ckan/datapusher/src/datapusher/datapusher/jobs.py", line 137, in check_response
[Fri Jan 22 13:38:24 2016] [error] request_url=request_url, response=response.text)
[Fri Jan 22 13:38:24 2016] [error] HTTPError
Так что моя проблема в том, что по какой-то причине я не знаю ckan пытается подключиться к базе данных Postgres с пользователем Postgres.
Мой production.ini вместо выглядит следующим образом:
## Database Settings
sqlalchemy.url = postgresql://ckan_default:[email protected]/ckan_default
ckan.datastore.write_url = postgresql://ckan_default:[email protected]/datastore_default
ckan.datastore.read_url = postgresql://datastore_default:[email protected]/datastore_default
Там нет ссылки на админ пользователя базы данных по умолчанию в этом файле. Роль «ckan_default» имеет привилегии CREATE/TEMP/CONNECT, а «datastore_default» имеет привилегии CONNECT в базе данных datastore_default.
Я не вижу никаких ограничений доступа здесь. Может ли кто-нибудь помочь мне решить эту проблему?