2016-01-22 5 views
0

Я выполнил инструкции по установке 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.

Я не вижу никаких ограничений доступа здесь. Может ли кто-нибудь помочь мне решить эту проблему?

ответ

0

Я бы подтвердил, что файл production.ini, на который вы смотрите, является тем, что CKAN действительно загружается. Посмотрите в /etc/ckan/default/apache.wsgi и убедитесь, что у вас есть:

config_filepath = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'production.ini')

Если хозяин не в производственной среде, вы также можете установить debug = true в production.ini (или development.ini), которая дает вам полезную отладку интерфейс, когда возникает такая ошибка. Это позволяет вам просматривать переменные на разных уровнях вверх по стеку. Это очень полезно, просто не включите отладку на всемирно доступной машине.

 Смежные вопросы

  • Нет связанных вопросов^_^