[ckan-dev] Setting up DataStore

Joshua Tauberer tauberer+consulting at govtrack.us
Thu Oct 4 17:17:43 UTC 2012


Ahha, ok.

What's the intended distro/postgres for CKAN 2?

Thanks for your help.

-- 
- Joshua Tauberer
- http://razor.occams.info



On 10/03/2012 03:07 PM, Dominik Moritz wrote:
> 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
>>





More information about the ckan-dev mailing list