Common Issues with MixSpace Updates and Yohaku Theme Compatibility
Since a version update of the Yohaku theme in early May, newer versions of the Yohaku theme will only be applicable to backend versions V12 and V13 and later versions of MixSpace, where MixSpace V13 backend version must be paired with V8.0.0 or higher version of the admin dashboard. Therefore, some issues may arise due to oversight or misoperation, and here is an unofficial archive record.
Note
v12 is a major version upgrade, the underlying database is changed from MongoDB to PostgreSQL. Although your articles, comments, configurations and other data will be preserved, a data migration needs to be performed during the upgrade process, and a brief site maintenance downtime is required.
The new version of MixSpace may not be compatible with older versions of Yohaku or the front-end theme you are using. Please confirm that the latest version of your theme explicitly states support for MixSpace V12 before updating accordingly.
Unless otherwise stated, the updates in this document are only related to MixSpace, and have nothing to do with whether your frontend theme is Yohaku, Shiro, or any other theme. This article provides a record of the commercial-grade upgrade process, focusing on the technical information of this update. The official cross-version upgrade documentation can be found below:
Just like updating with WordPress or other site engines, before starting any cross-version update that affects the data structure, it is recommended to back up and archive the original database and current version program, so that you can roll back in time without affecting production if the update fails.
The following code for backing up data does not distinguish the method you use for MixSpace deployment:
Since I use Docker to deploy the backend in a unified manner (i.e., the admin dashboard is also installed when installing the MixSpace backend), I only list the procedures and considerations during my update here. If you need to deploy from source or deploy separately, please refer to the official MixSpace documentation.
Stop Backend Operation
After backing up data, immediately stop the backend operation to prevent new data from being written during the update and lost. Note: Do not stop the MongoDB service when stopping MixSpace:
BASH
cd ~/mx-space/core
# 只停业务进程,让 mongo 继续跑
docker compose stop app
Confirm MongoDB is still running and expose ports to the host:
If you do not see the expected content, make the following changes in the docker-compose.yml file at the corresponding location (add port configuration):
If --network host is unavailable, change to --network <v12 compose 网络名> and first connect the old mongo container to that network (docker network connect mx-space_mx-space mongo), then use the container names mongo:27017 and postgres:5432 to connect.
Expected output
Rows allocated: XXXX, the number should be close to your article/comment count
Missing refs: 0(a small number of orphan data is acceptable)
Finally, the output shows ✅ Migration finished without missing references.
What if errors occur?
Error Message
Reason
Solution
MongoServerSelectionError
Mongo port not exposed / network not connected
Check if the mongo container maps port 27017, or confirm --network is set correctly
Connection refused (postgres)
PG hasn't started yet
Wait 30 seconds and retry
Missing refs > 0
Has orphan data
Usually ignorable, take a screenshot and continue
Other errors
Unknown issues
Do not continue, keep the logs, and roll back to v11 (see the rollback section below)
Update Yohaku or Frontend Display Theme
New versions of MixSpace no longer support using older versions of the Yohaku theme. Go update your Yohaku theme, or change/update the theme you are using to a version that explicitly states support for MixSpace V12, to be compatible with the new version of MixSpace.
Part. 3 Check Update
Start MixSpace V12
BASH
docker compose up -d
Execute the above command and check the following:
Open the homepage, the article list displays normally
Open an article, the content and comments are there
Log in to the backend (你的域名/proxy/qaqdmin), able to log in normally
The backend 'Other → Backup' page can be opened normally
Publish a test article, it can be published and displayed normally
Delete the test article, it can be deleted normally
Part. 4 About the Old Database and Rollback
Regarding the deletion and rollback of the old database, you can refer to the solutions in the official documentation. The official description of this part is very detailed, and I will not elaborate here:
As for the various issues encountered during the MixSpace V13 update, I will also sort them out as soon as possible within the next two days and publish them here.
Since a version update of the Yohaku theme in early May, newer versions of the Yohaku theme will only be applicable to backend versions V12 and V13 and later versions of MixSpace, where MixSpace V13 backend version must be paired with V8.0.0 or higher version of the admin dashboard. Therefore, some issues may arise due to oversight or misoperation, and here is an unofficial archive record.
v12 is a major version upgrade, the underlying database is changed from MongoDB to PostgreSQL. Although your articles, comments, configurations and other data will be preserved, a data migration needs to be performed during the upgrade process, and a brief site maintenance downtime is required.
The new version of MixSpace may not be compatible with older versions of Yohaku or the front-end theme you are using. Please confirm that the latest version of your theme explicitly states support for MixSpace V12 before updating accordingly.
Unless otherwise stated, the updates in this document are only related to MixSpace, and have nothing to do with whether your frontend theme is Yohaku, Shiro, or any other theme. This article provides a record of the commercial-grade upgrade process, focusing on the technical information of this update. The official cross-version upgrade documentation can be found below:
Part. 1 Backup Data
Just like updating with WordPress or other site engines, before starting any cross-version update that affects the data structure, it is recommended to back up and archive the original database and current version program, so that you can roll back in time without affecting production if the update fails.
The following code for backing up data does not distinguish the method you use for MixSpace deployment:
And verify that your backup is valid:
Part. 2 Version Update
Since I use Docker to deploy the backend in a unified manner (i.e., the admin dashboard is also installed when installing the MixSpace backend), I only list the procedures and considerations during my update here. If you need to deploy from source or deploy separately, please refer to the official MixSpace documentation.
Stop Backend Operation
After backing up data, immediately stop the backend operation to prevent new data from being written during the update and lost. Note: Do not stop the MongoDB service when stopping MixSpace:
Confirm MongoDB is still running and expose ports to the host:
If you do not see the expected content, make the following changes in the docker-compose.yml file at the corresponding location (add port configuration):
Update Configuration File
Run the following commands to back up the original docker-compose.yml and update the configuration file:
Note that if the new version of MixSpace files are not downloaded when performing the update later, execute the following correction steps.
If necessary, modify the configuration file
In the newly pulleddocker-compose.yml file, change the image: innei/mx-server:latest part to the following:
Migrate Configuration Information
In the new docker-compose.yml file, fill in your original docker-compose.yml configuration information:
I have mentioned both of these in the article about deploying the Yohaku theme:
Update and Start New Database
Start the new database
Then wait about 30 seconds and execute the following command:
Expect to see postgres and redis status are both healthy or Up. Also confirm that PostgreSQL port 5432 is mapped to the host.
Database Migration
The official documentation provides two ways to perform database migration. We use the simpler method:
If --network host is unavailable, change to --network <v12 compose 网络名> and first connect the old mongo container to that network (docker network connect mx-space_mx-space mongo), then use the container names mongo:27017 and postgres:5432 to connect.
Expected output
What if errors occur?
Error Message
Reason
Solution
MongoServerSelectionError
Mongo port not exposed / network not connected
Check if the mongo container maps port 27017, or confirm --network is set correctly
Connection refused (postgres)
PG hasn't started yet
Wait 30 seconds and retry
Missing refs > 0
Has orphan data
Usually ignorable, take a screenshot and continue
Other errors
Unknown issues
Do not continue, keep the logs, and roll back to v11 (see the rollback section below)
Update Yohaku or Frontend Display Theme
New versions of MixSpace no longer support using older versions of the Yohaku theme. Go update your Yohaku theme, or change/update the theme you are using to a version that explicitly states support for MixSpace V12, to be compatible with the new version of MixSpace.
Part. 3 Check Update
Start MixSpace V12
Execute the above command and check the following:
Part. 4 About the Old Database and Rollback
Regarding the deletion and rollback of the old database, you can refer to the solutions in the official documentation. The official description of this part is very detailed, and I will not elaborate here:
As for the various issues encountered during the MixSpace V13 update, I will also sort them out as soon as possible within the next two days and publish them here.