S
S
solomonych2012-01-12 00:15:22
CMS
solomonych, 2012-01-12 00:15:22

What is the best way to update cms versions?

Greetings!
I propose for consideration such a mini it-case:
I myself am a website designer, but due to understandable circumstances, in 70% of cases after this (design) I have to make turnkey websites for clients (“oh, how cool that we found a programmer” :) .
Since the sites are not large and fall under the concept of “promotional” / corporate in a light configuration (without complex integrations, etc.), I ordered a self-written CMS with a set of the most necessary functions for a freelancer.
Now this system has about 200-250 installations (for 3 years of operation), since the development, in fact, no global improvements and iterations have been made ... During this time, it has been scattered (in different projects) and many holes, bugs have been patched and patched, added new modules-functions, the admin interface has been updated. Now I finally have this code in one place.
Initial data:
1. there are passwords to all sites where I would like to update the code in the form login: [email protected]
2. there is the latest version of the code, which I would like to update-roll out all at once (an extensive system of folders with scripts nested in them). It is logical to assume that stupidly demolish-refill will not work, tk. in the same folders of non-zero nesting level there are templates, page caches, pictures, etc.
3. The budget for this is minimal (or rather, it doesn’t exist, I just want to do it for peace of mind, so I’m ready to pay for the upgrade out of my own pocket).
The task is as simple as 2 rubles:
Update everything automatically and immediately to the latest version :)
I would be very grateful for any ideas, links, tips on what to read, examples of ready-made solutions and software !!!

Answer the question

In order to leave comments, you need to log in

6 answer(s)
E
egorinsk, 2012-01-12
@egorinsk

And if the client changed something there after installing the site, for example, you will demolish it with your update or even break the site, doesn’t it scare you?

Z
zapimir, 2012-01-12
@zapimir

In my opinion, this question should be asked first of all to the author of cms, or to the one who completed it, since when completing it, backward compatibility may not always remain (if such a task was not set). Plus, we need diffs of the base structure and update it too.

V
Vladimir Chernyshev, 2012-01-12
@VolCh

Look at capistrano . I think that's exactly what you need. What is not in PHP (for some reason it seems to me that your CMS is on it) - do not be alarmed, mastering the syntax is much easier than the syntax of the “native” Phing configs, designed for the same purposes. Ruby will only need to be installed on the local machine. The documentation is excellent, but in English. Examples of use, including with PHP projects, are also on Habré.
As for the organization of the process itself, it is difficult to advise without knowing the features of the engine and whether there can / should be differences in the code and other “seemingly” site-independent files and database schema on different sites. If they can / should, then I would advise you to get acquainted with version control systems (I personally prefer Mercurial, but Git is more popular), but you should get acquainted with them anyway. And organize the structure of repositories/branches like this: the main branch/repository is the common code (+ default design), branches from it/clones are the code of each of the sites (you can also put site-specific templates, pictures, etc.). At the next update of the common code, in turn, merge (combine) the code of branches / clones with the main one (perhaps clones are better for your case) - something will automatically be merged,
The budget is zero, but you will have to spend a couple of days on studying and organizing. But then any edit (including a change in the data schema) in the main repository will be distributed to all servers with one capistrano command, leaving their local nuances intact. Believe me - it's worth it!

C
Chii, 2012-01-12
@Chii

I would suggest having an open (or closed?) repository with this cms and just notify clients about the update. Who needs it - let them update themselves.
Or if they paid for maintenance - for some reason it seems to me that it’s worth adding the self-updating functionality, it’s not so difficult. In most free (and even non-free) CMs, it is perfectly implemented and works. A very successful option can be seen in the example of phpbb forum scripts. There also add auto-download according to the patch schedule and auto-unpacking - that's a ready-made self-update.

M
mastini, 2012-01-12
@mastini

Have you thought about rsync?
or make an archive and just replace the files when unpacking it?
script to delete unnecessary files, if any.

K
Kirill Mamaev, 2012-01-13
@r00tGER

If everything works for the client, and he is satisfied with everything, then why should he update something?
Especially if it was not discussed separately.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question