在新安装时初始化Ghost数据库

时间:2017-12-10 02:09:10

标签: mysql ghost

我正在尝试在Centos 7服务器上建立一个全新的Ghost博客。我安装了Nginx,Node和Ghost,并编写了所有必要的配置文件。它非常接近工作,但我想使用MySQL而不是SQLite,因此我创建了一个名为“ghost_db”的新(空白)MySQL数据库,设置了一个名为“ghost”的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

> ghost@1.18.4 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的一些评论表明,对于此版本的Ghost,可能不需要使用knex-migrate,当我运行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”数据库是空白的。 config.js中指向的“ghost-dev.db”文件似乎适用于SQLite,但如果我将config.js切换回使用SQLite数据库,则会收到相同的错误消息。我不知道“迁移”表是什么。我找到了Ghost在[https://github.com/TryGhost/Ghost/blob/1.16.2/core/server/data/schema/schema.js]期望的模式,但是我不知道如何使用它来初始化表格等,除非手工非常费力地完成。我很难过!

3 个答案:

答案 0 :(得分:0)

我采用了另一种证明成功的方法,即将Ghost安装为NPM模块。官方Ghost指令将此标记为" advanced"过程,但要遵循优秀nehalist.ioStickleback博客中的说明并不困难。 HugeServer知识库中还有一些有用的guidance。我认为最终问题是Ghost命令行界面(ghost-cli)不是为Centos 7设计的。

答案 1 :(得分:0)

Knex-migrator是Ghost 1.0中的新增功能,它还使用config.<env>.json文件进行配置。

听起来您将数据库配置添加到名为config.js的文件中,该文件是正确的<1.0,但是您似乎正在安装Ghost 1.0,因此您的新连接详细信息需要存在{{1 }}。

Ghost-CLI不适用于CentOS(适用于Ubuntu),这是正确的,但如果无法正确安装Ghost,我会感到非常惊讶。其他操作系统的问题主要在于系统之间的细微差别,即保持Ghost运行。

答案 2 :(得分:0)

对我来说,答案是根本不创建数据库,而让Ghost作为ghost install的一部分来完成它。