Python 2.7 转储CKAN数据库并将其加载到另一个CKAN实例中

Python 2.7 转储CKAN数据库并将其加载到另一个CKAN实例中,python-2.7,migration,ckan,Python 2.7,Migration,Ckan,我曾多次尝试将CKAN数据库加载到另一台主机中的另一个CKAN实例中,但均未成功 我的工作流程如下: A> 从生产主机\u p中提取数据库转储 B> 将转储的数据库文件复制到我的新主机 C> 激活CKAN虚拟环境 D> 清理主机中的现有CKAN数据库 E> 将转储文件加载到CKAN主机实例中。 F> 我得到以下错误: 我不知道如何解释上述错误,因此非常感谢您的帮助。看起来您遇到了密码中的特殊字符没有正确转义的情况。出于这一原因和其他原因,paster db dump和load命令将被弃用。官方建

我曾多次尝试将CKAN数据库加载到另一台主机中的另一个CKAN实例中,但均未成功

我的工作流程如下:

A> 从生产主机\u p中提取数据库转储 B> 将转储的数据库文件复制到我的新主机 C> 激活CKAN虚拟环境 D> 清理主机中的现有CKAN数据库 E> 将转储文件加载到CKAN主机实例中。 F> 我得到以下错误:
我不知道如何解释上述错误,因此非常感谢您的帮助。

看起来您遇到了密码中的特殊字符没有正确转义的情况。出于这一原因和其他原因,paster db dump和load命令将被弃用。官方建议使用PostgreSQL自己的工具,例如和与paster db升级相结合,后者将保留

作为一种短期解决方法,请确保您的密码不包含shell专用的字符


更新:CKAN文档已更新了有关的信息。

看起来像是您遇到了密码中的特殊字符未正确转义的情况。出于这一原因和其他原因,paster db dump和load命令将被弃用。官方建议使用PostgreSQL自己的工具,例如和与paster db升级相结合,后者将保留

作为一种短期解决方法,请确保您的密码不包含shell专用的字符


更新:CKAN文档已更新。

您运行的是什么版本的CKAN和PostgreSQL?请在cli.py的第290行之前输入一行“print pg_cmd”,并告知我们将pg_密码的值更改为Xs的内容。您确实在/etc/ckan/spatial_hub/development.ini文件中的sqlalchemy.url中设置了postgres密码,是吗?谢谢您的回复。CKAN版本:2.5.2,PSQL版本9.5.3,sqlalchemy.url已在配置文件中正确设置@害怕在cli.py中添加print语句会打印以下内容:export PGPASSWORD=XXXXXX&&psql-U ckan\U spatialhub-h localhost-d ckan\U spatialhub-f/home/username/ckan\U db\U dump.sqlckan和PostgreSQL正在运行哪些版本?在第290行之前的cli.py中输入一行“print pg\U cmd”,并让我们知道更改将您的PG_密码发送到Xs。您确实在/etc/ckan/spatial_hub/development.ini文件中的sqlalchemy.url中设置了postgres密码,是吗?谢谢您的回复。CKAN版本:2.5.2,PSQL版本9.5.3,sqlalchemy.url已在配置文件中正确设置@害怕在cli.py中添加print语句会打印以下内容:export PGPASSWORD=XXXXXX&&psql-U ckan\U spatialhub-h localhost-d ckan\U spatialhub-f/home/username/ckan\U db\U dump.sql谢谢Florian,我可以确认我的密码包含特殊字符。如果计划不推荐“db转储”和“db加载”,我将尝试使用“pg_转储”、“pg_恢复”和“db升级”。关于如何推进PSQL工作流,有什么有用的资源吗?谢谢again@Dimitris很高兴我能帮忙!计划是用如何使用PostgreSQL工具进行数据库迁移的示例更新CKAN文档,但尚未实现。您好,这只是为了确认将CKAN DB用户密码更改为字母数字字符解决了问题。已使用“db dump”、“db clean”和“db load”将数据库成功传输到新主机。再次感谢。谢谢Florian,我可以确认我的密码包含特殊字符。如果计划不推荐“db转储”和“db加载”,我将尝试使用“pg_转储”、“pg_恢复”和“db升级”。关于如何推进PSQL工作流,有什么有用的资源吗?谢谢again@Dimitris很高兴我能帮忙!计划是用如何使用PostgreSQL工具进行数据库迁移的示例更新CKAN文档,但尚未实现。您好,这只是为了确认将CKAN DB用户密码更改为字母数字字符解决了问题。已使用“db dump”、“db clean”和“db load”将数据库成功传输到新主机。再次感谢。
paster db dump -c /etc/ckan/ckan_p_instance/production.ini instance_p_db_dump.sql
. /usr/lib/ckan/ckan_t_instance/bin/activate
paster db clean -c /etc/ckan/spatial_hub/development.ini
paster db load -c /etc/ckan/spatial_hub/development.ini ~/instance_p_db_dump.sql
/bin/sh: 1: Syntax error: "&&" unexpected
Traceback (most recent call last):
  File "/usr/lib/ckan/spatial_hub/bin/paster", line 11, in <module>
    sys.exit(run())
  File "/usr/lib/ckan/spatial_hub/local/lib/python2.7/site-packages/paste/script/command.py", line 102, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/ckan/spatial_hub/local/lib/python2.7/site-packages/paste/script/command.py", line 141, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/spatial_hub/local/lib/python2.7/site-packages/paste/script/command.py", line 236, in run
    result = self.command()
  File "/usr/lib/ckan/spatial_hub/src/ckan/ckan/lib/cli.py", line 238, in command
    self.load()
  File "/usr/lib/ckan/spatial_hub/src/ckan/ckan/lib/cli.py", line 315, in load
    pg_cmd = self._postgres_load(dump_path)
  File "/usr/lib/ckan/spatial_hub/src/ckan/ckan/lib/cli.py", line 290, in _postgres_load
    self._run_cmd(pg_cmd)
  File "/usr/lib/ckan/spatial_hub/src/ckan/ckan/lib/cli.py", line 297, in _run_cmd
    raise SystemError('Command exited with errorcode: %i' % retcode)
SystemError: Command exited with errorcode: 2