First. Let me tell you that it is just another update and I wouldn’t explain the new features as they have been explained here in every developer blog post. Just go and read it.
Second. I will also try to explain it briefly as I assume that you have read the other posts I wrote before here and here.
Note
Someone confirmed that this tutorial also worked for updating to the version 0.11.7. Read his comments (potatoefist) below.
Backup
Remember to always do a backup first before doing an upgrade.
- Go to your
blog dashboard
>Labs
> then hit theExport
button. This will export your settings and your content to a json file that you can import whenever you need it. - Make a snapshot of your cartridge by using this command in your terminal
rhc snapshot save
. You can read about this here.
Pre Update
Please make sure you have installed the right version of node.js in your machine, just take a look at this post for the compabilities. I use 4.2 as this is the recommended one and the version of Node that they use with Ghost in production on Ghost(Pro).
Type node -v
to show the version.
Then tidy up your application to prevent a Not Enough Space error. Just run this command on your terminal.
rhc app tidy
Update
In order to the new Node.js support and a few dependency updates, you should modify your package.json
file in your root app folder. I have changed the node version and added the newest dependencies update. You may choose whatever you want. Here is mine:
{ "name": "openshift-ghost-quickstart", "description" : "Openshift Ghost Quickstart (SQLite)", "repository": { "type": "git", "url": "git://github.com/openshift/openshift-ghost-quickstart.git" }, "bugs": "https://github.com/openshift/openshift-ghost-quickstart/issues", "main": "index.js", "scripts": { "start": "node index" }, "engines": { "node": "~4.2.0", "iojs": "~1.2.0" }, "dependencies": { "express": "^4.14.0", "ghost": "^0.11.3", "amperize": "0.3.1", "archiver": "1.1.0", "bcryptjs": "2.3.0", "bluebird": "3.4.6", "body-parser": "1.15.2", "bookshelf": "0.10.2", "chalk": "1.1.3", "cheerio": "0.22.0", "compression": "1.6.2", "connect-slashes": "1.3.1", "cookie-session": "1.2.0", "cors": "2.8.1", "csv-parser": "1.11.0", "downsize": "0.0.8", "express-hbs": "1.0.3", "extract-zip-fork": "1.5.1", "fs-extra": "0.30.0", "ghost-gql": "0.0.5", "glob": "5.0.15", "gscan": "0.0.15", "html-to-text": "2.1.3", "image-size": "0.5.0", "intl": "1.2.5", "intl-messageformat": "1.3.0", "jsonpath": "0.2.7", "knex": "0.12.5", "lodash": "4.16.4", "moment": "2.15.2", "moment-timezone": "0.5.7", "morgan": "1.7.0", "multer": "1.2.0", "netjet": "1.1.3", "node-uuid": "1.4.7", "nodemailer": "0.7.1", "oauth2orize": "1.5.1", "passport": "0.3.2", "passport-http-bearer": "1.0.1", "passport-oauth2-client-password": "0.1.2", "path-match": "1.2.4", "rss": "1.2.1", "sanitize-html": "1.13.0", "semver": "5.3.0", "showdown-ghost": "0.3.6", "sqlite3": "3.1.8", "superagent": "2.3.0", "unidecode": "0.1.8", "validator": "5.7.0", "xml": "1.0.1" } }
Save it.
Then remove node_modules
folder, clean the node packages cache:
rm -rf node\_modules && npm cache clear
Then reinstall the packages:
npm install --production
Push your changes
git add . git commit -m "Update to Ghost 0.11.3" git push
Voila !