我建立了一个新的 Ghost 0.4 博客,创建了许多帖子,然后在设置网站之前切换到生产模式。令我惊讶的是,我创建的帖子不再出现。自从设置 Ghost 0.3.3 以来,我忘记了 Ghost 对生产和开发环境使用单独的数据库存储,并且在创建内容之前我未能切换到生产模式。
如何将内容从 Ghost 的开发环境迁移到其生产环境?
我建立了一个新的 Ghost 0.4 博客,创建了许多帖子,然后在设置网站之前切换到生产模式。令我惊讶的是,我创建的帖子不再出现。自从设置 Ghost 0.3.3 以来,我忘记了 Ghost 对生产和开发环境使用单独的数据库存储,并且在创建内容之前我未能切换到生产模式。
如何将内容从 Ghost 的开发环境迁移到其生产环境?
Ghost 使用 SQLite 数据库,该数据库将每个内容的内容存储在一个文件中,因此可以轻松地一次备份、移动或复制整个数据库。
为了解决我的开发数据库中只有帖子的问题,我简单地关闭了 Ghost,并切换了生产和开发 SQLite 数据库文件。这些文件存储在 Ghostcontent/data
子文件夹中:
ghost-dev.db
是开发数据库ghost.db
是生产数据库如果您在 Ghost 文件夹中,以下命令将交换两个环境数据库:
$ mv content/data/ghost-dev.db content/data/ghost-dev.db-tmp
$ mv content/data/ghost.db content/data/ghost-dev.db
$ mv content/data/ghost-dev.db-tmp content/data/ghost.db
在任一模式下重新启动 Ghost 以查看更改。
将所有内容从开发复制到生产甚至更容易:
$ cp content/data/ghost-dev.db content/data/ghost.db
改变这种行为的一个简单方法是选择在生产和开发中使用相同的数据库。
修改您正在开发中的以下行config.js
:database:connection from
filename: path.join(__dirname, '/content/data/ghost-dev.db')
至
filename: path.join(__dirname, '/content/data/ghost.db')