Upgrading without loosing Files

Permalink
I've got a site with legacy 5.6 that desperately needed a facelift. I've finished the facelift using the Motif Theme on a localhost which is fully updated to 8.0.3. I have two problems. The first is 5.6 needs to be updated on the live site, but my second problem is that I have a podcast feed that is referencing files uploaded through the files/incoming directory and the podcast's xml file is located in files/xxxx/xxxx/xxxx/podcast.xml. Ideally, it would be nice to start fresh, wipe the site and do a fresh install of 8.0.3 on the live site and migrate everything from the localhost. But there's this podcast feed that needs to be maintained.
So...
1. Will updating, change the file structure mucking up my podcast feed?
2. If not, how do I update without cleaning off the server and starting from scratch (what I did when I built the new site on my localhost
3. I've looked over this article (http://documentation.concrete5.org/tutorials/upgrade-56-57) which doesn't seem to quite answer my question because I'd really only like to maintain the references for the sake of not having to edit some 50+ episode listings.
4. Just since we're on the topic, what would be a best practice for hosting a podcast on concrete5? Placement of audio files? placement of XML file so they are accessible to both use on my page and aggregators?

Thanks so much. I appreciate any response. I really just dabble in web development and this forum has helped on a number of occasions. Rounds of applause for your service!!!

 
MrKDilkington replied on at Permalink Reply
MrKDilkington
Hi PriceChapel,

I am not sure if the Migration Tool changes the file paths when exporting and importing files.

A safer approach for handling a migration, and any other major site changes, is to do it using a copy of your online site. This can be done by backing up your site files and exporting your database. This would allow you to recreate your online installation on a local web server.

With a local copy, you can migrate your content and files without risk and see if the file paths change.

Regarding the podcast, are you using an add-on to generate the feed?
PriceChapel replied on at Permalink Reply
Thanks for the reply!!! Sorry for the delay in response, the holiday season got busy. Those suggestions sound like some good practices moving forward. So, just to be clear, are you saying I should go back and pull down a copy of our site to local host and walk through the process of upgrading it locally to the new site?

To answer your question about the podcast feed. I used an app to generate the initial podcast xml file which I uploaded to our web server through the file manager and I've been maintaining it manually since then. The audio is uploaded through an FTP to "incoming" and then added into file manager.
MrKDilkington replied on at Permalink Reply
MrKDilkington
@PriceChapel

Yes, make a full backup (make note of version, files, and database) of your live site and recreate it on your local server.

Working on a local development copy is faster, safer, and allows for experimentation. I do not recommend making any significant changes to a live server, especially without having backups.

As you add audio files, you copy their link using the file manager, then manually edit the podcast.xml? If so, this could probably be automated.
PriceChapel replied on at Permalink Reply
Thanks for the recommendation. So, I've copied all our files from the server (the relevant ones), but I'm having trouble making a database backup. When I click "Run Backup" in System & Settings, it loads for a second and then displays a white screen. When I navigate back to the database backup page, no backup had been made. Does the process time out?

To answer you question about the podcast, yes. Are there some good articles you could point me to to automate this process?
MrKDilkington replied on at Permalink Reply
MrKDilkington
@PriceChapel

I recommend using your web host control panel tools to export your database. The built-in database backup in concrete5 can run into issues when exporting large databases.

Off the top of my head, you could make a single page for adding podcast episodes. That single page would have a file upload field, name field, description field, and all the other fields required to create each new episode entry. When the single page was saved, the file ID and all entry fields would be used to create a new entry in the podcast.xml file. This would require reading the contents of the podcast.xml file and then parsing the XML and adding a new entry. For organization, you would probably want to assign the uploaded podcast to a fileset or folder.

What I described is a very simplified overview. There are many intermediate steps involved.

Here are some links to point you in the right direction:
Single Pages
http://documentation.concrete5.org/developers/working-with-pages/si...
Working with Files and the File manager
http://documentation.concrete5.org/developers/working-with-files-an...
Basic SimpleXML usage
http://php.net/manual/en/simplexml.examples-basic.php...
PriceChapel replied on at Permalink Reply
Ah, the simplification helps. In the end it sounds like the same amount of data entry, just through a better UI. Does it actually speed things up? I think I can edit the file in about 3 minutes start to finish.

The other thing that just came up, I've downloaded the database, but I realized, the live site is C5 ver. 5.6.x.x. My current local host set up has already been upgraded to PHP 7. Which I remember causes some issues with 5.6.x.x and earlier. I ran into this problem when I first started building what will eventually replace this site.

If I remember correctly, I had to update to 5.7, then update php from 5.5 (which the live site is currently running) to php 7. So, to make the live site work on the localhost, do I have to downgrade to php 5.5 to then update to C5 5.7 to then upgrade php back to 7?

Ha, it feels like i've locked my keys in the car. I can't unlock the car without the keys, but I can't get my keys unless I unlock the car.
MrKDilkington replied on at Permalink Reply
MrKDilkington
@PriceChapel

I imagine you will have to downgrade to a PHP supported by the latest concrete5 5.6.x release.

PHP 5.6.3 should run 5.6, 5.7, and v8.