简体   繁体   English

CKAN Paster db init sqlalchemy 编程错误

[英]CKAN paster db init sqlalchemy programming error

I have followed the CKAN install guide from source ( http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html ) and managed to get all the way until point 6. Create database tables.我从源代码( http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html )开始遵循 CKAN 安装指南,并设法一直到第 6 点。创建数据库表.

At that stage, running paster db init -c /etc/ckan/default/development.ini gives the following stack trace:在那个阶段,运行paster db init -c /etc/ckan/default/development.ini给出以下堆栈跟踪:

Traceback (most recent call last): File "/usr/lib/ckan/default/bin/paster", line 9, in <module> load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')() File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 104, in run invoke(command, command_name, options, args[1:]) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 143, in invoke exit_code = runner.run(args) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 238, in run result = self.command() File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 208, in command self._load_config(cmd!='upgrade') File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 164, in _load_config self.site_user = logic.get_action('get_site_user')({'ignore_auth': True}, {}) File "/usr/lib/ckan/default/src/ckan/ckan/logic/__init__.py", line 424, in wrapped result = _action(context, data_dict, **kw) File "/usr/lib/ckan/default/src/ckan/ckan/logic/action/get.py", line 2209, in get_site_user user = model.User.get(site_id) File "/usr/lib/ckan/default/src/ckan/ckan/model/user.py", line 64, in get return query.first() File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2334, in first ret = list(self[0:1]) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2201, in __getitem__ return list(res) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2405, in __iter__ return self._execute_and_instances(context) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2420, in _execute_and_instances result = conn.execute(querycontext.statement, self._params) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 727, in execute return meth(self, multiparams, params) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 322, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 824, in _execute_clauseelement compiled_sql, distilled_params File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 954, in _execute_context context) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1116, in _handle_dbapi_exception exc_info File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 189, in raise_from_cause reraise(type(exception), exception, tb=exc_tb) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 947, in _execute_context context) File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 435, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (ProgrammingError) column user.password does not exist LINE 1: SELECT "user".password AS user_password, "user".id AS user_i... ^ 'SELECT "user".password AS user_password, "user".id AS user_id, "user".name AS user_name, "user".openid AS user_openid, "user".fullname AS user_fullname, "user".email AS user_email, "user".apikey AS user_apikey, "user".created AS user_created, "user".reset_key AS user_reset_key, "user".about AS user_about, "user".activity_streams_email_notifications AS user_activity_streams_email_notifications, "user".sysadmin AS user_sysadmin, "user".state AS user_state \\nFROM "user" \\nWHERE "user".name = %(name_1)s OR "user".openid = %(openid_1)s OR "user".id = %(id_1)s ORDER BY "user".name \\n LIMIT %(param_1)s' {'param_1': 1, 'id_1': 'default', 'name_1': 'default', 'openid_1': 'default'}

I did not make any modifications to the installation or the schema.我没有对安装或架构进行任何修改。 The installation is under a proxy, but that did not turn out to be a problem thus far, since there were many posts giving help in that regard.安装是在代理下进行的,但到目前为止这并没有成为问题,因为有很多帖子在这方面提供了帮助。

Did anybody come across this error before and managed to resolve it?有没有人以前遇到过这个错误并设法解决了它? I don't suppose it is a proxy-related problem... though it seems to be related to the schema.我不认为这是与代理相关的问题......尽管它似乎与架构有关。

I ran into the same issue but dropping the DB and creating and initialising it again afterwards produced the same error.我遇到了同样的问题,但删除数据库并在之后再次创建和初始化它产生了同样的错误。 Also running paster db clear -c /etc/ckan/default/development.ini failed with said error.同样运行paster db clear -c /etc/ckan/default/development.ini失败并出现上述错误。

It worked for me, when I deactivated all ckan.plugins in development.ini before running paster db init -c /etc/ckan/default/development.ini .它的工作对我来说,当我停用所有ckan.pluginsdevelopment.ini运行前paster db init -c /etc/ckan/default/development.ini

Managed to solve this one after all, so I'll answer my own question... :)毕竟设法解决了这个问题,所以我会回答我自己的问题...... :)

The problem was with the setup of the database.问题出在数据库的设置上。 Once I purged the database and completely reinstalled it, everything worked like a charm!一旦我清除了数据库并完全重新安装了它,一切都像魅力一样!

sqlalchemy.exc.ProgrammingError: (ProgrammingError) column user.password does not exist LINE 1: SELECT "user".password AS user_password, "user".id AS user_i... sqlalchemy.exc.ProgrammingError: (ProgrammingError) 列 user.password 不存在 LINE 1: SELECT "user".password AS user_password, "user".id AS user_i ...

This error usually means that the CKAN database exists but is empty - the CKAN tables have not been created in it.此错误通常意味着 CKAN 数据库存在但为空 - 尚未在其中创建 CKAN 表。

To solve it:要解决它:

cd /usr/lib/ckan/default/src/ckan
paster db init -c /etc/ckan/default/development.ini

There's more about this in the docs: http://docs.ckan.org/en/latest/maintaining/installing/install-from-source.html#create-database-tables文档中有更多关于此的信息: http : //docs.ckan.org/en/latest/maintaining/installing/install-from-source.html#create-database-tables

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM