I have docker hosted version on azure.
2 days ago we had some issues with squidex version after the last version release 5.6.0.
We downgrade the docker container to tag 5.5.0 so it will support our current integration.
We created additional Squidex instance with version 5.6.0 so we can ajust our integration to support 5.6.0 vesion.
Now, whwn I open the both instances on the browser I see different content
5.5.0 I see old content
5.6.0 version I see new content after some changes we made before we set to 5.5.0 version.
When I restart my instance again to version 5.5.0 in the new instance I see again the old content.
My question is how it possible? Are the both instances not fetch the data from the same MongoDB? How is the content related to squidex version?
Thanks a lot
- [ X ] Self hosted with docker
- [ ] Self hosted with IIS
- [ ] Self hosted with other version
- [ ] Cloud version
Version: [5.5.0 + 5.6.0]
Squidex uses an actor concept. Each domain object is like a small micro service that lives in memory and is persisted to memory. If you run multiple instances on the same database you get inconsistencies like that.
So what is the best practice?
If I created some instance for testing and I made some changes there, how I sync all the data between the instances?
The plan is to shutdown the test instance with 5.6.0 after we finish the adjustment and work only with one instance that we going to upgrade back to 5.6.0.
How do I sync all changes to production instance
Best practice for what exactly? If you want to run two applications and versions side by side you have to clone your database.
The both instances point to the same DB. why should I clone DB? And how is the squidex version related to it? Why I see different content with different squidex versions?
Lets assume that Squidex would have a “normal” architecture. If you run multiple instances to the same DB you can always create issues. For example when a change is made to the database and the newer version creates structures that are not compatible for the older version. So in general it is not a good idea I would say.
But Squidex makes a lot of things in memory. When a new content item is created or a content is queried a small actor is created in memory, when you make an update to one of the server the actor on the other server does not get the update and you can override the settings. I really assume that your problem has to do with that.
Thanks but I still not understand why when I change the version of the container and restart the instance I see different content.
Now when I try to change something on other instance I got the error:
“Failed to make the update. Another user has made a change. Please reload.”
How should I handle this situation?