Cannot upgrade site

Permalink
Hi all — Very frustrated with c5 these days, hoping someone can help.

I'm still on version 8.2.1 because in that version, dashboard update broke and I haven't had time to manually update the site since then. I can see in the release notes for 8.3.2 that this problem was fixed:

Fixed: The current "check for updates" dashboard page doesn't report the latest version because of a bug in the cache reading/writing process (thanks mlocati)
https://documentation.concrete5.org/developers/background/version-hi...

Okay, so I have to do the manual update steps at:
https://documentation.concrete5.org/developers/installation/upgradin...

The first thing I do is back up the current site and database. Typically, my process is to restore the backups to a development environment, do the upgrade there, and then move the updated site from the development environment to production. This way, if anything goes wrong, I can always easily abandon the development environment and production remains unaffected.

Restoring my backups to the devel env, I run into this issue:
https://github.com/concrete5/concrete5/issues/5562...

The two suggested fixes in that thread do not work, when I restore the DB as suggested and then load the site in the devel env, I get:
An unexpected error occurred.
include(): Filename cannot be empty

I have continually found that routine updates to concrete5 turn into exercises in yak shaving. I can't understand how anyone that actually needs to run a site finds c5 an acceptable solution. What am I missing?

 
hutman replied on at Permalink Reply
hutman
When you restore your site to a dev site, are you turning off Pretty URLs and deleting everything in the application/files/cache directory? These things can cause some weird and major issues when trying to upgrade.
srosesbef replied on at Permalink Reply
Yes, I have done several successful updates in the past this way, so it's not the first time I've used a devel environment to verify changes.

Whenever I have to do something that isn't a button click on the admin dashboard, I have found that doing the first attempt in production often leads to a website being down for hours or day while I'm figuring out what went wrong and how to fix it. This particular problem is not related to pretty URLs, it's because the File Manager leaves dangling references when files are deleted. (If you read the associated bug, it seems that for some reason the running system is able to ignore foreign key constraints in production, but not during a restore.)
JohntheFish replied on at Permalink Reply
JohntheFish
You could experiment with some of the notes further back in that issue report, such as @korvin's switching off of the constraints and switching them on again, or @seanom's queries to remove disconnected attributes.

Bugs with v8.x to v8.y updates often actually originated with flakey updates from v5.7 to v8, especially when attributes are involved. If you have not made many changes since the site was running v5.7, it may be feasible to go back there, update to 5.7.5.13, then direct to v8.4.5, so skipping much of the problem zone.
srosesbef replied on at Permalink Reply
So far, this is what I feared the responses would be.

Sorry, but does anyone find this situation reasonable? Is the goal of Concrete5 to be a real project that orgs can rely on? Or it is a toy?

I really want to support open source. I've run c5 for about four years now, and I have to say: c5 is not a CMS. It's just a collection of software that can be cobbled together with a database, some PHP scripts, and other tech.

If you're a hobbyist and you want something fun to play around with and learn technology, c5 is great! If you have to keep an actual site up and running without long periods of downtime and you're expecting simple things to be simple, this thread is evidence that something has gone catastrophically wrong.

Just to level set, here is how a real open source product—not a toy—regards problems like what I'm experiencing:
https://lkml.org/lkml/2018/12/22/221...
JohntheFish replied on at Permalink Reply
JohntheFish
I think you are right to be frustrated. Bugs in the update mechanism are 'fixed' with another update, so helping any unfixed bugs to dig themselves a bigger hole and the whole flawed process iterates with the next version update ........... (infinite recursion of update bugs)

The only good news is that you are wise enough to check out updates on a clone, rather than allowing the problems to mess up a live site.
srosesbef replied on at Permalink Reply
The worst part is that c5 doesn't even support the approach or using different environments, which I've found is absolutely required because of how flaky everything is.

But even migrating the live site back into a devel env is a hassle. You have to remember to turn off canonical URLs, pretty URLs, clear the cache, etc, only then can you take a backup and move the site. Then when you restore it, don't forget to manually make the right directories writable…

It always feels bad to complain about open source because contributors do put a lot of hard work into it, but I am barely scratching the surface of functionality that c5 claims to provide on the simple site I'm responsible for, and it is ~endless~ headache.

I'm sad to say that this thread is the straw that's breaking the camel's back. I'm migrating my org away from c5, I just don't have time to go wading through the forum anymore looking for another yak to shave.
Gondwana replied on at Permalink Reply
Gondwana
I would like to see Portland Labs employ a professional quality manager. This is an area requiring some specialist expertise and isn't second nature to most coders. I suspect the US Department of Defense will have limited tolerance for preventable bugs.