Transitioning From 5.8.2 To 6.5.0

A request to WAPPLER pros who have made the move from Wappler 5 to Wappler 6:

Do you have any helpful instructions that will help prepare existing apps to transition from Wappler 5.8.2 to Wappler 6.5.0?

If so, and when you have time, please list your advice below to help those of us who have yet to make that journey, but feel the time to move to the other side is NOW.

Thank you to those who have responded, and also to those who need to share their story too.

I’m glad I jumped on the Updated beta wagon right from the start. Transitioning to 6.5.0 Stable app connect 2 was smooth. Only had one problem with Summernote but that was fixed very quickly with an inline update. I have updated all of my projects (even my own personal site that was built in the Wappler Early Adopter preview in 2018) and all are working just fine.

If you haven’t been testing the beta version out all along, I would definitely recommend backing everything up.

Also keep in mind I do not use Docker at all. I’m a classic FTP guy.

4 Likes

We adopted Docker a few years back thanks to Wappler (have had a couple of issues but can’t blame Wappler for those (package updates locally and remotely), and all were rectified). And like you we kept pace with the Beta updates knowing the time would come when they would be the production versions. We have played catch-up in the past and was not something we wanted to do again as time is money and downtime can be expensive and lead to loss of Users. We are very happy with 6.5.0 and we have no issues whatsoever with some incredibly complex applications which are all running smooth as butter as of the time of writing this response.

1 Like

I’ll be transitioning from 3.9.7…

Say a prayer for me! :tada:

3 Likes

:open_mouth:

Remarkable what you have managed to do with a ZX81!

:smiley:

I’m only joking Antony!!

5 Likes

I’ve just found my original ZX81 but haven’t got the power supply or a CRT TV to connect it to so no idea if it still works!

2 Likes

I ditched my 1980 Z80 based Tandy TRS 80 level 2 only a few months ago complete with 5 inch floppy discs (100k storage). PSU had failed.

3 Likes

Love you @Cheese! :orange_heart:

1 Like

Nobody under the age of FORTY (this was the edit as did originally post thirty) will ever understand what a game changer an extra 16k of Ram was… Plasticine not included (we needed this to support the expansion otherwise it failed).

:smiley:

1 Like
  • Backup everything first.

  • Make a copy of the Project you intend to update (Clone).

  • Work LOCALLY not remotely.

  • Change the Channel to Beta (although I believe you can now select Stable and this is the current Beta which is now considered Stable?).

  • Work through one page at a time.

  • Check any authentication based pages.

  • Slowly slowly catchy monkey there on out.

  • Once you are happy with the Cloned Project and everything is running deploy it.

Thought I should add a sensible response to your serious request @revjrblack (I do apologise for not doing this prior to posting silliness).

3 Likes

I’ll add that the process of moving to AC2 has a way of exposing poor coding practices (at least it did for me!)

Mostly, it will highlight timing issues.

Here is a very simple example:

Previous code that worked under AC1 but (properly) failed under AC2

dmx-on:click="each_meal_type.remove($index);meal_type_ids_to_delete.addUniq(meal_type_id)"

As you can see it is 2 actions that are fired off together immediately since they are not in a flow. It removes an item from a form repeat, and also adds the id of the removed item to an array.

However with the improvements in AC2, things move much faster. In this case, the id needed from the form repeat item, is now gone (removed on the first action) by the time it attempts to add it to the array on the second action.

The solution here is to use a flow which will first add the item to the array, and then remove from the form repeat.

dmx-on:click="run([{run:{outputType:'text',action:`meal_type_ids_to_delete.addUniq(meal_type_id)`}},{run:{outputType:'text',action:`each_meal_type.remove($index)`}}])"

Given that my app is probably 5 years old now, I found several patterns I used like this that must now be cleaned up.

I’ll also add that I have AC2 in production for the last week, and I really appreciate the speed improvements…they are noticeable if you have heavy client side processing.

4 Likes

Based on your assessment, would a clean install of Wappler 6.5.0, followed by the importation of 5.8.2 projects, will be the best approach for late-in-the-game group? an easy transition?

No problem. Ha!

1 Like

Personally, I don’t think that is necessary, but you should do what you are comfortable with.

The single most important thing (and this is for any software upgrade at any time) is to be confident in your ability to go backwards. As long as you can confidently return to a known good state, going forward and trying new things is easy.

1 Like

No need for a fresh install (IMHO). The critical thing is to BACKUP everything. Also I should mention a fresh directory for the Cloned Project (although am certain Wappler will not allow you to use a directory already populated with files).

If your Project is not too complicated with regards to your data and its display/formatting you really shouldn’t have too many issues at all with the upgrade process. It could go quite smoothly as pretty much everything Extension wise has been tested repeatedly with lots of feedback from those utilising the Beta Channel.

I probably should have read this before I upgraded to 6.5.0 but I am busy reverting back to App Connect 1.
98% of the upgrade went well which probably made me think everything was okay but I now have a number of odd behaviors that I’m struggling to even debug.

On one page the tabs don’t change they just show the data extended at the bottom of the current tab, no errors produced.

One page no longer updates but instead produces an SQL error about
SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect INTEGER value: ’ ’ ‘’
though the only date field uses NOW() and removing that line doesn’t fix the problem.

It is a large application that was originally made in V3 (updated to V5 successfully) so I imagine I have the same issues as Ken in that some of the old ways of doing things don’t work with AC2. If you application was developed more recently then you may be less likely to run into issues.

Not suggesting you don’t upgrade but the advice from Cheese is good and wish I had done the test every page bit in a bit more detail, just that testing is so boring :slight_smile:

2 Likes

Thank you very much for your time and frank discussion of the quirkiness of moving older applications into newer versions.

I really hope to see more tutorials, both static and video, that utilizes the newer interface etc. of Wappler 6+.

1 Like