我正在尝试在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]期望的模式,但是我不知道如何使用它来初始化表格等,除非手工非常费力地完成。我很难过!
答案 0 :(得分:0)
我采用了另一种证明成功的方法,即将Ghost安装为NPM模块。官方Ghost指令将此标记为" advanced"过程,但要遵循优秀nehalist.io和Stickleback博客中的说明并不困难。 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
的一部分来完成它。