在Ubuntu 20.04、MYSQL 8.0下Ghost v4 版本更新深坑及实战解决方法

技巧 Apr 24, 2021

前天晚上手贱,看到 Ghost 出到了 v4.3.1,想着更新一下应该没事吧。毕竟是小版本更新。
实际摔深坑里了。以为5分钟搞定实际花了差不多1天时间。趁现在还记得解决步骤赶紧写个Blog记录以备用并分享给同伴😂。

从4.2.1更新到4.3.1版本错误如下:

A GhostError occurred.

Message: Ghost was able to start, but errored during boot with: alter table `members_products` add constraint `members_products_member_id_foreign` foreign key (`member_id`) references `members` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'member_id' and referenced column 'id' in foreign key constraint 'members_products_member_id_foreign' are incompatible.
Help: Error occurred while executing the following migration: 02-add-members-products-table.js
Suggestion: journalctl -u ghost_hansendong-me -n 50

Debug Information:
OS: Ubuntu, v20.04.2 LTS
Node Version: v12.16.1
Ghost Version: 4.3.1
Ghost-CLI Version: 1.16.3
Environment: production
Command: 'ghost restart'

Additional log info available in: /home/blog/.ghost/logs/ghost-cli-debug-2021-04-22T15_14_23_687Z.log

Try running ghost doctor to check your system for known issues.

You can always refer to https://ghost.org/docs/ghost-cli/ for troubleshooting.

然后Google相关关键词,虽然有类似案例但都没有得到准确的答案。去他们开发者论坛看了看,也有高度类似的案例,官方人员有回复提供解决方案(可能是数据库字符集兼容问题),仍然没有得到解决。

我也试得根据官方人员提供方案做测试,均没有解决。想着是不是依赖软件版本太低,但更新到最新版本还是不行(如下)。

A GhostError occurred.

Message: Ghost was able to start, but errored during boot with: alter table `members_products` add constraint `members_products_member_id_foreign` foreign key (`member_id`) references `members` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'member_id' and referenced column 'id' in foreign key constraint 'members_products_member_id_foreign' are incompatible.
Help: Error occurred while executing the following migration: 02-add-members-products-table.js
Suggestion: journalctl -u ghost_hansendong-me -n 50

Debug Information:
    OS: Ubuntu, v20.04.2 LTS
    Node Version: v14.16.1
    Ghost Version: 4.3.1
    Ghost-CLI Version: 1.16.3
    Environment: production
    Command: 'ghost restart'

Additional log info available in: /home/blog/.ghost/logs/ghost-cli-debug-2021-04-22T19_34_36_395Z.log

Try running ghost doctor to check your system for known issues.

You can always refer to https://ghost.org/docs/ghost-cli/ for troubleshooting.

在论坛发帖也没有得到有用的回复,无奈只好用命令行导出Blog数据库及下载照片、主题文件夹作为备份。这时已经是昨天凌晨4点多,就去睡觉了。

mysqldump -uusername -ppassword databasename > /var/www/ghost/databasename.sql

起床后,把该忙的忙完了,继续折腾。想着把VPS重装系统,系统选择Ubuntu 18.04 LTS,Ghost选择最后正常使用的4.2.1,导入数据库看看。

没想到是那个服务商的VPS重装系统后无法更新系统,懒着研究了。换成Linode一切正常,系统选择Ubuntu 20.04,按照 官方教程 全新安装了一遍,Ghost版本已经是4.3.2了,各项功能一切正常。但尝试导入SQL数据库文件仍然提示相同错误。难道Blog只能重新开始了吗?不甘心。这个VPS已经搭建好了,不想推倒重来了。

于是临时新开个VPS,系统选择Ubuntu 18.04 LTS,重复上面教程。但在Run the install process这一步时候,在后面加上你要安装的版本号:

ghost install v4.2.1

这样就可以安装指定的版本了。之后我尝试导入数据库SQL文件:

mysql -uusername -ppassword databasename < /var/www/ghost/databasename.sql;

成功!!!

进入后台在左下角右侧设置--Labs--Export your content导出文章和设置数据。在这个Blog后台成功导入。呼~,7年心血又完整回来了!把之前的备份的图片和主题文件夹通过SSH软件上传对应的位置。打开文章看看正常显示。

我的Blog完美复活!!!这次学乖了,加了每月2刀自动备份的服务。

Tags

Hansen

闷骚的完美主义的老青年。草根站长、自由撰稿人、资深网民、网络、文学以及娱乐八卦控。外贸人,SOLO族。石家庄婵然贸易有限公司、中邦智盛(深圳)贸易有限公司创始人

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.