Как я могу инициализировать db ini на Ckan?

Я не могу инициализировать свою базу данных на Ckan. Я пытаюсь установить Ckan 2.8 на Ubuntu 16.04 и Postgres 9.6, следуя инструкциям на официальном страница.

Все хорошо, но когда я пытаюсь инициализировать свою базу данных, я не могу.

Это ошибка.

    Traceback (most recent call last):
  File "/usr/lib/ckan/default/bin/paster", line 11, in <module>
    sys.exit(run())
  File "/usr/lib/ckan/default/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/default/local/lib/python2.7/site-packages/paste/script/command.py", line 141, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/paste/script/command.py", line 236, in run
    result = self.command()
  File "/usr/lib/ckan/default/src/ckan/ckan/lib/cli.py", line 363, in command
    model.repo.init_db()
  File "/usr/lib/ckan/default/src/ckan/ckan/model/__init__.py", line 188, in init_db
    self.upgrade_db()
  File "/usr/lib/ckan/default/src/ckan/ckan/model/__init__.py", line 266, in upgrade_db
    mig.upgrade(self.metadata.bind, self.migrate_repository, version=version)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/migrate/versioning/api.py", line 186, in upgrade
    return _migrate(url, repository, version, upgrade=True, err=err, **opts)
  File "<decorator-gen-16>", line 2, in _migrate
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/migrate/versioning/util/__init__.py", line 160, in with_engine
    return f(*a, **kw)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/migrate/versioning/api.py", line 366, in _migrate
    schema.runchange(ver, change, changeset.step)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/migrate/versioning/schema.py", line 93, in runchange
    change.run(self.engine, step)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/migrate/versioning/script/py.py", line 148, in run
    script_func(engine)
  File "/usr/lib/ckan/default/src/ckan/ckan/migration/versions/016_uuids_everywhere.py", line 69, in upgrade
    drop_sequencies(migrate_engine)
  File "/usr/lib/ckan/default/src/ckan/ckan/migration/versions/016_uuids_everywhere.py", line 186, in drop_sequencies
    migrate_engine.execute('drop sequence %s_id_seq;' % sequence)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 2064, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 939, in execute
    return self._execute_text(object, multiparams, params)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1097, in _execute_text
    statement, parameters
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
    exc_info
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 470, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) no existe la secuencia «package_extra_revision_id_seq»
 [SQL: 'drop sequence package_extra_revision_id_seq;']

Я пытаюсь запустить:

  • пастер db init -c /etc/ckan/default/production.ini
  • sudo ckan db init

Я проверил свою базу данных во время работы скрипта, и скрипт правильно создал последовательность «package_extra_revision_id_seq». Но когда скрипт завершает работу, последовательность «package_extra_revision_id_seq» больше не существует.


person Luis Garcia    schedule 16.11.2018    source источник
comment
Не могли бы вы проверить версию psycopg2, если это 2.7.3.2?   -  person tino097    schedule 19.11.2018
comment
Конечно. Я проверяю это и это вывод: psycopg2==2.7.3.2   -  person Luis Garcia    schedule 20.11.2018
comment
У меня была подобная ошибка в прошлом на коробке разработчика. В моем случае обычно во время установки я копирую и вставляю команду в неправильном порядке, пропускаю одну или беру более старую версию чего-либо (например, запускаю cmd для установки для Ubuntu 14 вместо 16). Если есть возможность, попробуйте удалить все и установить с самого начала. Это может быть не такая простая проблема, но стоит попробовать. Я заметил, что вы запускаете команду paster для инициализации, но вы связались с установкой из пакета, в котором говорится об использовании sudo ckan db init. Вы устанавливаете из исходного кода, пакета или докера?   -  person user3366016    schedule 20.12.2018


Ответы (1)


«CKAN 2.8, установка из исходников» paster db init не работает и не сообщается, так что он в любом случае не будет работать. Решение состоит в том, чтобы установить вместо него CKAN 2.7, так как зависимости разные и работают.

https://docs.ckan.org/en/2.7/

После установки команда paster для инициализации базы данных работает

person Raúl Cancino    schedule 12.05.2020