How to migrate Ghost blog content between development and production environments?

StackOverflow https://stackoverflow.com/questions/21169968

  •  28-09-2022
  •  | 
  •  

I set up a new Ghost 0.4 blog, created numerous posts, then switched to production mode before setting the site live. To my surprise, the posts I created no longer showed up. Since setting up Ghost 0.3.3, I had forgotten that Ghost uses separate database stores for the production and development environments, and I failed to switch to production mode before creating content.

How can I migrate content from Ghost's development environment to its production environment?

有帮助吗?

解决方案

Ghost uses SQLite databases, which stores content in a single file for each content, so it's easy to back-up, move or copy an entire database in one go.

To solve the problem of having posts only in my development database, I simply shut down Ghost, and switched the production and development SQLite database files. The files are stored in the Ghost content/data sub-folder:

  • ghost-dev.db is the development database
  • ghost.db is the production database

If you're in the Ghost folder, the following commands will swap the two environment databases:

$ 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

Restart Ghost in either mode to see the changes.

It's even easier to just copy everything from development to production:

$ cp content/data/ghost-dev.db content/data/ghost.db

其他提示

An easy way to change this behavior is to just choose to use the same database for both production and development.

Modify the following line in your config.js under development:database:connection from

filename: path.join(__dirname, '/content/data/ghost-dev.db')

to

filename: path.join(__dirname, '/content/data/ghost.db')
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top