[ckan-dev] Setting up DataStore

Dominik Moritz domoritz at gmail.com
Wed Oct 3 19:07:44 UTC 2012


Hello Joshua,

This problem occurs because the paster command uses commands that are only available in Postgres 9.0+. We are working on support for versions prior to 9.0 but it has not been implemented yet. Sorry about that.

Cheers,
Dominik

On Oct 3, 2012, at 18:23 , Joshua Tauberer <tauberer+consulting at govtrack.us> wrote:

> Thanks, Dominik.
> 
> That solves that. There are a few new problems then. If I run it on a clean db, create-db works fine but in create-read-only-user I get:
> 
> An error occured: ERROR:  role "(my read-write user)" does not exist
> ERROR:  role "(my read-write user)" does not exist
> ERROR:  syntax error at or near "ALL"
> LINE 1: GRANT SELECT ON ALL TABLES IN SCHEMA public TO "...
> 
> If I create the read-write user on my own first and then run create-db (ok), create-read-only-user gives:
> 
> An error occured: ERROR:  syntax error at or near "ALL"
> LINE 1: GRANT SELECT ON ALL TABLES IN SCHEMA public TO "...
>                        ^
> ERROR:  syntax error at or near "DEFAULT"
> LINE 1: ALTER DEFAULT PRIVILEGES FOR USER "ckanuser" IN SCHEMA publi...
>              ^
> 
> By the way, in case this is helpful for the documentation: To get the environment right (paster on the PATH, access to db, write permission on the log file) I had to do this:
> 
> sudo su postgres -c  ". /home/ubuntu/pyenv/bin/activate; paster datastore ....
> 
> -- 
> - Joshua Tauberer
> - http://razor.occams.info
> 
> 
> On 10/03/2012 11:55 AM, Dominik Moritz wrote:
>> Hi Joshua,
>> 
>> My mistake. This will be fixed as soon as the changes are merged into master. For now you will have to run the paster command without the --plugin=ckan argument.
>> 
>> Please try : paster datastore create-db PG_USER
>> 
>> The datastore is quite new and we still need experience with setups. Thank you very much for your bug report.
>> 
>> Cheers,
>> Dominik
>> 
>> 
>> On Oct 3, 2012, at 16:16 , Joshua Tauberer <tauberer+consulting at govtrack.us> wrote:
>> 
>>> Hi,
>>> 
>>> I'm trying out DataStore (source install from the master branch).
>>> 
>>> Following the docs, I'm stuck at the step of creating the database. It seems like I'm not supposed to create the database or users myself --- that's what paster datastore create-db/create-read-only-user are supposed to do.
>>> 
>>> However, when I run these commands an exception is thrown during initialization complaining about not being able to authenticate as the user configured in the ini --- which of course doesn't exist yet. Here's the exception:
>>> 
>>> $ paster --plugin=ckan datastore create-db postgres
>>> Traceback (most recent call last):
>>>  File "/home/ubuntu/pyenv/bin/paster", line 9, in <module>
>>>    load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 104, in run
>>>    invoke(command, command_name, options, args[1:])
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 143, in invoke
>>>    exit_code = runner.run(args)
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/paste/script/command.py", line 238, in run
>>>    result = self.command()
>>> *  File "/home/ubuntu/pyenv/src/ckan/ckanext/datastore/commands.py", line 72, in command**
>>> **    self._load_config()**
>>> *  File "/home/ubuntu/pyenv/src/ckan/ckan/lib/cli.py", line 85, in _load_config
>>>    load_environment(conf.global_conf, conf.local_conf)
>>>  File "/home/ubuntu/pyenv/src/ckan/ckan/config/environment.py", line 353, in load_environment
>>>    plugin.configure(config)
>>>  File "/home/ubuntu/pyenv/src/ckan/ckanext/datastore/plugin.py", line 49, in configure
>>>    if not self._is_read_only_database():
>>>  File "/home/ubuntu/pyenv/src/ckan/ckanext/datastore/plugin.py", line 99, in _is_read_only_database
>>>    {'connection_url': url}).connect()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 2472, in connect
>>>    return self._connection_cls(self, **kwargs)
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 878, in __init__
>>>    self.__connection = connection or engine.raw_connection()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/engine/base.py", line 2558, in raw_connection
>>>    return self.pool.unique_connection()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 183, in unique_connection
>>>    return _ConnectionFairy(self).checkout()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 387, in __init__
>>>    rec = self._connection_record = pool._do_get()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 741, in _do_get
>>>    con = self._create_connection()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 188, in _create_connection
>>>    return _ConnectionRecord(self)
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 270, in __init__
>>>    self.connection = self.__connect()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/pool.py", line 330, in __connect
>>>    connection = self.__pool._creator()
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/engine/strategies.py", line 80, in connect
>>>    return dialect.connect(*cargs, **cparams)
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/sqlalchemy/engine/default.py", line 281, in connect
>>>    return self.dbapi.connect(*cargs, **cparams)
>>>  File "/home/ubuntu/pyenv/lib/python2.6/site-packages/psycopg2/__init__.py", line 179, in connect
>>>    connection_factory=connection_factory, async=async)
>>> sqlalchemy.exc.OperationalError: (OperationalError) FATAL:  password authentication failed for user "ckan_datastore_rw"
>>> FATAL:  password authentication failed for user "ckan_datastore_rw"
>>> 
>>> If I create the user, it then throws an exception about the database not existing. If I then create the db, it throws about the read-only user not existing. If I create the read-only user it throws about the user having write permission on the database. And after that I gave up because I couldn't figure out what I needed to revoke to get past that problem. :)
>>> 
>>> Tips?
>>> 
>>> -- 
>>> - Joshua Tauberer
>>> - http://razor.occams.info
>>> 
>>> _______________________________________________
>>> ckan-dev mailing list
>>> ckan-dev at lists.okfn.org
>>> http://lists.okfn.org/mailman/listinfo/ckan-dev
>> 
>> 
>> _______________________________________________
>> ckan-dev mailing list
>> ckan-dev at lists.okfn.org
>> http://lists.okfn.org/mailman/listinfo/ckan-dev
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2726 bytes
Desc: not available
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20121003/7a4e2bbb/attachment-0003.bin>


More information about the ckan-dev mailing list