Инициализация базы данных Ghost при новой установке

0

Я пытаюсь создать совершенно новый блог Ghost на сервере Centos 7. У меня установлены Nginx, Node и Ghost и написаны все необходимые файлы конфигурации. Это довольно близко к работе, но я хотел использовать MySQL вместо SQLite, поэтому я создал новую (пустую) базу данных MySQL под названием "ghost_db", настроил пользователя MySQL под названием "призрак", дал пользователю разрешение на базу данных и добавили эти строки в config.js:

    database: {
  client: 'mysql',
  connection: {
    host: 'localhost',
    user: 'ghost',
    password: 'mypassword',
    database: 'ghost_db'
    charset: 'utf8'
    filename: path.join(__dirname, '/content/data/ghost-dev.db')
  },
  debug: false
}, ...

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

[john@a ghost]$ npm start

> [email protected] start /var/www/ghost
> node index
[2017-12-10 00:08:00] ERROR
NAME: DatabaseIsNotOkError
CODE: MIGRATION_TABLE_IS_MISSING
MESSAGE: Please run knex-migrator init ...

Тем не менее, некоторые комментарии к Stackexchange предполагают, что использование knex-migrate может оказаться ненужным для этой версии Ghost, и когда я запускаю knex-migrator, он также терпит неудачу:

[john@a ghost]$ knex-migrator init
[2017-12-09 16:21:33] ERROR

NAME: RollbackError
CODE: SQLITE_ERROR
MESSAGE: delete from "migrations" where "name" = '2-create-fixtures.js' and "version" = 'init' and "currentVersion" = '1.18' - SQLITE_ERROR: no such table: migrations
...[omitted] 
Error: SQLITE_ERROR: no such table: migrations

Я думаю, проблема может заключаться в том, что база данных "ghost_db", изначально созданная, пустая. Файл "ghost-dev.db", который указан в файле config.js, похоже, относится к SQLite, но я получаю такое же сообщение об ошибке, если я переключу config.js обратно на базу данных SQLite. Я не знаю, что такое таблица "миграции". Я нашел схему, которую я думаю, что Ghost ожидает на [ https://github.com/TryGhost/Ghost/blob/1.16.2/core/server/data/schema/schema.js], но я не уверен, как используйте это, чтобы инициализировать таблицы и т.д., за исключением того, что делаете это очень осторожно вручную. Я в тупике!

Теги:
ghost

3 ответа

0
Лучший ответ

Я выбрал альтернативный подход, который оказался успешным, а именно, чтобы установить Ghost в качестве модуля NPM. Официальные инструкции Призрачных маркировать это как "продвинутый" процесс, но это было не слишком трудно следовать инструкциям в отличном nehalist.io и Колюшка блог. Было также полезное руководство по базе знаний HugeServer. Я думаю, что в конечном итоге проблема заключалась в том, что интерфейс командной строки Ghost (ghost-cli) не был разработан для Centos 7.

0

Ответ для меня состоял в том, чтобы просто не создавать базу данных и позволить Ghost делать это как часть ghost install.

  • 1
    Это работает только с SQLite? Или вы можете сделать это и с MySQL?
  • 0
    Я использовал MySQL, так что определенно!
0

Knex-migrator является новым в Ghost 1.0, который также использует config.<env>.json file для конфигурации.

Похоже, вы добавили конфигурацию своей базы данных в файл config.js который был правильным <1.0, однако, похоже, вы устанавливали Ghost 1.0, и поэтому ваши новые данные о соединении должны были бы жить в config.production.json.

Вы правы, что Ghost-CLI не предназначен для использования в CentOS (это для Ubuntu), но я был бы очень удивлен, если бы он не смог правильно установить Ghost. Проблемы с другими ОС в основном связаны с незначительными различиями между systemd, т.е. поддержанием Ghost.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню