J'ai suivi les instructions pour installer ckan en tant que paquet sur Ubuntu 12.04 LTS. J'ai également configuré l'extension du magasin de données. Les bases de données ont été créées et les utilisateurs et mots de passe par défaut ont été configurés dans /etc/ckan/default/production.iniImpossible de télécharger vers le magasin de données dans ckan 2.5.1: utilisation de l'utilisateur postgres au lieu de celui configuré
Mon problème est que chaque fois que je veux télécharger un jeu de données vers le DataStore (en utilisant le bouton "Télécharger" à DataStore ") il semble d'abord que tout fonctionne bien. Mais si je clique un autre endroit et cliquez sur le DataStore à nouveau j'obtenir la boîte rouge d'erreur suivant:
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
(troisième url mutilée parce que je n'ai pas la réputation d'afficher plus de 2 URL)
le /var/log/apache2/datapusher.error.log répertorie ces lignes:
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
donc mon problème est que, pour une raison que je ne sais pas CKAN essaie de se connecter à la base de données postgres avec l'utilisateur postgres.
Mon production.ini ressemble plutôt à ceci:
## 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
Il n'y a pas de référence à l'utilisateur d'administration de base de données par défaut dans ce fichier. Le rôle "ckan_default" a les privilèges CREATE/TEMP/CONNECT et "datastore_default" a les privilèges CONNECT sur la base de données datastore_default.
Je ne vois aucune contrainte d'accès ici. Quelqu'un peut-il m'aider à résoudre ce problème?