I'm having problems upgrading an Umbraco website to the latest version from 7.2.8 to 7.8.1 (running a file based SQL CE database).
I'm performing the upgrade via NUGet in Visual Studio. Once the upgrade is complete, I remove the UrlRewrite entries from the web.config then rebuild the solution (I have also said no to overwriting any config files).
When I go to the site, it asks for credentials to perform the upgrade. Once I enter these, a few seconds later I am returned to the authorise login screen, and nothing happens. I have tried this multiple times but no change. I have also gone back to a backup and have tried upgrading again, but it's the same result each time.
This is not the first time I have upgraded an existing site to this version so I am familiar with the process.
If I look in the logs, it seems to be complaining about missing database tables etc. This makes no sense as the database works just fine with the previous version.
This is the full log file, maybe someone can point me in the direction of what is going wrong.
The log suggests that the table umbracoUser2UserGroup does not exist and indeed opening the database in LinqPad shows that to be the case. Is this table created during the upgrade? I have examined the database of other sites I have that have been upgraded to 7.8.1 and I find no umbracoUser2UserGroup table in these either, however, they do have a umbracoUser2UserGroups table. This doesn't really make any sense so if someone could enlighten me it would be much appreciated.
Unfortunately this site needs to be updated as some changes on my web hosting system have caused older sites to fail to show content when you log into the back-end. The only fix I have found is a site upgrade.
Did you do a large jump upgrade from 7.2.8 to 7.8.1.
Upgrading from 7.2.8 in my past experience has been a royal pain in the butt if you just jump big versions. It's much safer to do incremental, particularly getting the site into the 7.3.* range. Once in 7.3.* I find it's a lot smoother.
I have managed to get it working now, well I've upgraded as far as 7.7.1 (which brought in quite a few breaking changes) but I've revised the site to make it work.
I agree with you upgrading Umbraco to big version jumps is a complete pain. I've had to do four different sites recently and each one has had a different but major problem which has taken half a day to fix.
I think in future smaller jumps will have to be the way to go, but it's time consuming, particularly when I have a lot of other work to do. I hate to say it, but Wordpress does have a far better upgrade path and big version jumps are rarely a problem. Of course you get issues with no longer supported plugins etc. but the actual upgrade experience is pretty solid.
I'm actually moving away from Umbraco now, which is a shame because I think it's a good system at heart, but it's really not for the more casual user, you have to live, breath Umbraco everyday to really get an easy ride there is so much that can go wrong and it can waste so much time!
I upgraded yesterday from 7.5.3 to 7.8.1 and I am still sifting through the wreckage.
Not impressed Umbraco. The dependant assemblies are the wrong version (mainly Owin) & Log4Net was missing as was the entries for the health checker code.
They have deprecated a bunch of methods passing dynamic parameters.
AND now for some reason umbracoHelper.MemberHasAccess does not return the correct bool.
No doubt umbraco told me all this and I just forgot. :)
I feel your pain, I've been through exactly the same with several sites over the last few months. I think a large part of the problem is the there isn't enough separation between the core system and the customisable parts. While it is nice to be able to customise absolutely everything, the problem is this can be a real pain when it comes to installing a new version.
I think a better approach would be to have more of a plugin system implementing a standard interface which allows custom code to communicate with the rest of the system. If there are clearly defined areas and restrictions on exactly what you can do to the core system (well by default anyway, of course power users should be able to do absolutely anything they want and will be aware of the potential conmsequences). If this was achieved, it should make upgrades considerably easier.
I think the team also do need to try and avoid all these breaking changes between versions, particularly between versions of the same major revision number. I know it's a pain keeping in legacy / deprecated code, but taking these things out can cause users a lot of pain, particularly when it means having to go through some large sites and make hundreds of code changes just because method signatures and return values have been revised. It's often not always clear exactly what has been changed and how - which has in my experience brought about hours of frustration trying to nail down the exact issue. Add in a customer desperate to have their site working ASAP and you have a toxic environment.
I say all of this as someone who works on a software product with a relatively large user base. I've learnt over the years the cost of causing difficulties for your customers between upgrades. In short if you keep doing it, they'll get fed up and go elsewhere - sure it's more work but the difference it makes to the experience is considerable.
I understand what you are saying, and I think we, as a community, can actually help with the upgrade woes that we get by contributing to the documentation.
It's really easy for the HQ to perform test updates to ensure they run smoothly and things like Umbraco Cloud are greatly helping them smooth things out but they can't see all the scenarios we as developers are using Umbraco.
Honestly, I was meaning to document that update for Umbraco 7.2.8 and the issues I had at the time, but work got in the way and I never got a chance to revisit it despite it happening on 3 sites at the time.
The documentation does get updated to indicate breaking changes and it is the HQ's policy that some breaking changes are allowed in the Minor versions however there should never be any in the patch updates.
I don't think the Umbraco core is generally the issue, it's our customisations and how we've gone about using it in unusual ways that cause most issues. I do think it's important to read the version specific updates notes for any upgrade (assuming there are some) as it's really easy to miss something obvious. In fact, I always refresh my memory on them before any update just because. I know I shouldn't have to but I find it beneficial :-)
Something that we could contribute to is a "Common upgrade pitfalls" type page on here where we can have a kind of FAQ/Check list of issues that crop up regularly. We could submit the ideas to the new Documentation team and see what we can come up with :-)
I think the main issue is the way in which some quite major parts of the framework are changed from time to time necessitating the need to go back through quite a lot of the views and update the code. What makes this more of a problem is the changes are not always clearly documented and when you do a search, you find plenty of examples using the now defunct signature.
I agree documentation will help with all of this, but I would also recommend that if a method signature needs to be changed, the original version should be left in place, at least until the next major version change.
Finally just to close this off, I noticed the forum requires a solution to be posted for this issue. I managed to sort it in the end by upgrading the site in smaller increments and making a number of code changes. This did take a fair amount of time so is far from ideal when you're running a number of sites.
Did you follow all the update guides including the version specific ones? I updated 7.2.2 to 7.7.x a few times without any problems. Version 7.7.x and 7.8.x is a small step so that shouldn't give you to many problems.
Yes we followed the guide and I bet when next upgrading I'll know what issues to look for, but running "upgrade-package umbracocms" should not be the shit fight it always is for me. All the sites I work are heavily modified. These are working websites, used every day. I am sure the upgrade works great on vanilla sites.
Strange, we don't have any issues outer than the stuff in the update guide. What is the definition of vanilla? We run most of our sites in a solution with multiple projects containing all the custom code.
Problem upgrading Umbraco
Hi,
I'm having problems upgrading an Umbraco website to the latest version from 7.2.8 to 7.8.1 (running a file based SQL CE database).
I'm performing the upgrade via NUGet in Visual Studio. Once the upgrade is complete, I remove the UrlRewrite entries from the web.config then rebuild the solution (I have also said no to overwriting any config files).
When I go to the site, it asks for credentials to perform the upgrade. Once I enter these, a few seconds later I am returned to the authorise login screen, and nothing happens. I have tried this multiple times but no change. I have also gone back to a backup and have tried upgrading again, but it's the same result each time.
This is not the first time I have upgraded an existing site to this version so I am familiar with the process.
If I look in the logs, it seems to be complaining about missing database tables etc. This makes no sense as the database works just fine with the previous version.
This is the full log file, maybe someone can point me in the direction of what is going wrong.
http://www.endangermice.co.uk/umbracologs/UmbracoTraceLog.Galactica.txt
The log suggests that the table umbracoUser2UserGroup does not exist and indeed opening the database in LinqPad shows that to be the case. Is this table created during the upgrade? I have examined the database of other sites I have that have been upgraded to 7.8.1 and I find no umbracoUser2UserGroup table in these either, however, they do have a umbracoUser2UserGroups table. This doesn't really make any sense so if someone could enlighten me it would be much appreciated.
Unfortunately this site needs to be updated as some changes on my web hosting system have caused older sites to fail to show content when you log into the back-end. The only fix I have found is a site upgrade.
Many thanks for any help,
Damien
Hi Damien,
Did you do a large jump upgrade from 7.2.8 to 7.8.1. Upgrading from 7.2.8 in my past experience has been a royal pain in the butt if you just jump big versions. It's much safer to do incremental, particularly getting the site into the 7.3.* range. Once in 7.3.* I find it's a lot smoother.
Just to check, have you followed the version specific upgrade guides? https://our.umbraco.org/documentation/Getting-Started/Setup/Upgrading/version-specific
If you can, I would try to upgrade to 7.3.0 following the version specific guide and then work your way up in Minor version jumps to 7.8.1.
Nik
Hi Nik,
I have managed to get it working now, well I've upgraded as far as 7.7.1 (which brought in quite a few breaking changes) but I've revised the site to make it work.
I agree with you upgrading Umbraco to big version jumps is a complete pain. I've had to do four different sites recently and each one has had a different but major problem which has taken half a day to fix.
I think in future smaller jumps will have to be the way to go, but it's time consuming, particularly when I have a lot of other work to do. I hate to say it, but Wordpress does have a far better upgrade path and big version jumps are rarely a problem. Of course you get issues with no longer supported plugins etc. but the actual upgrade experience is pretty solid.
I'm actually moving away from Umbraco now, which is a shame because I think it's a good system at heart, but it's really not for the more casual user, you have to live, breath Umbraco everyday to really get an easy ride there is so much that can go wrong and it can waste so much time!
Thanks for the advice Nik,
All the best,
Damien
I upgraded yesterday from 7.5.3 to 7.8.1 and I am still sifting through the wreckage.
Not impressed Umbraco. The dependant assemblies are the wrong version (mainly Owin) & Log4Net was missing as was the entries for the health checker code.
They have deprecated a bunch of methods passing dynamic parameters.
AND now for some reason umbracoHelper.MemberHasAccess does not return the correct bool.
No doubt umbraco told me all this and I just forgot. :)
I feel your pain, I've been through exactly the same with several sites over the last few months. I think a large part of the problem is the there isn't enough separation between the core system and the customisable parts. While it is nice to be able to customise absolutely everything, the problem is this can be a real pain when it comes to installing a new version.
I think a better approach would be to have more of a plugin system implementing a standard interface which allows custom code to communicate with the rest of the system. If there are clearly defined areas and restrictions on exactly what you can do to the core system (well by default anyway, of course power users should be able to do absolutely anything they want and will be aware of the potential conmsequences). If this was achieved, it should make upgrades considerably easier.
I think the team also do need to try and avoid all these breaking changes between versions, particularly between versions of the same major revision number. I know it's a pain keeping in legacy / deprecated code, but taking these things out can cause users a lot of pain, particularly when it means having to go through some large sites and make hundreds of code changes just because method signatures and return values have been revised. It's often not always clear exactly what has been changed and how - which has in my experience brought about hours of frustration trying to nail down the exact issue. Add in a customer desperate to have their site working ASAP and you have a toxic environment.
I say all of this as someone who works on a software product with a relatively large user base. I've learnt over the years the cost of causing difficulties for your customers between upgrades. In short if you keep doing it, they'll get fed up and go elsewhere - sure it's more work but the difference it makes to the experience is considerable.
I understand what you are saying, and I think we, as a community, can actually help with the upgrade woes that we get by contributing to the documentation.
It's really easy for the HQ to perform test updates to ensure they run smoothly and things like Umbraco Cloud are greatly helping them smooth things out but they can't see all the scenarios we as developers are using Umbraco.
Honestly, I was meaning to document that update for Umbraco 7.2.8 and the issues I had at the time, but work got in the way and I never got a chance to revisit it despite it happening on 3 sites at the time.
The documentation does get updated to indicate breaking changes and it is the HQ's policy that some breaking changes are allowed in the Minor versions however there should never be any in the patch updates.
I don't think the Umbraco core is generally the issue, it's our customisations and how we've gone about using it in unusual ways that cause most issues. I do think it's important to read the version specific updates notes for any upgrade (assuming there are some) as it's really easy to miss something obvious. In fact, I always refresh my memory on them before any update just because. I know I shouldn't have to but I find it beneficial :-)
Something that we could contribute to is a "Common upgrade pitfalls" type page on here where we can have a kind of FAQ/Check list of issues that crop up regularly. We could submit the ideas to the new Documentation team and see what we can come up with :-)
I think the main issue is the way in which some quite major parts of the framework are changed from time to time necessitating the need to go back through quite a lot of the views and update the code. What makes this more of a problem is the changes are not always clearly documented and when you do a search, you find plenty of examples using the now defunct signature.
I agree documentation will help with all of this, but I would also recommend that if a method signature needs to be changed, the original version should be left in place, at least until the next major version change.
Finally just to close this off, I noticed the forum requires a solution to be posted for this issue. I managed to sort it in the end by upgrading the site in smaller increments and making a number of code changes. This did take a fair amount of time so is far from ideal when you're running a number of sites.
Did you follow all the update guides including the version specific ones? I updated 7.2.2 to 7.7.x a few times without any problems. Version 7.7.x and 7.8.x is a small step so that shouldn't give you to many problems.
Yes we followed the guide and I bet when next upgrading I'll know what issues to look for, but running "upgrade-package umbracocms" should not be the shit fight it always is for me. All the sites I work are heavily modified. These are working websites, used every day. I am sure the upgrade works great on vanilla sites.
Strange, we don't have any issues outer than the stuff in the update guide. What is the definition of vanilla? We run most of our sites in a solution with multiple projects containing all the custom code.
Guys,
any help is appreciated..
https://our.umbraco.org/forum/using-umbraco-and-getting-started/90478-umbraco-upgrade-site-just-showing-up-the-website-is-restarting-message
is working on a reply...