I updated CB manually by expanding the zip-file and copying the needed files. Before somebody asks: The auto updater is not an option. The deployment of web applications and their updates is included
in our central software management system.
I know, that the database needs an update too. I couldn’t find the script which updates the database in the file system.
Andrew, we have a software managment system, which takes care of all web applications. This saves us money, time and gives us a very stable environment.
I assume if you were to execute the update on dev, and then check in the code to your software system, you wouldn’t be able to automate a deployment to higher environments since the new code would get moved, but the corresponding DB updates would not happen on the higher environments. Is that the issue Martin?
Our Software Management System is based on a scripting engine. I have full control what will happen. Copying the new files is done perfectly, even older unused files will be removed…
The Updater runs some code to update the database, which is my problem. If i would know, which CFML-code is running during the update, i could pick the SQL-Statements and do the update via command line. I’m a bit confused, why i can not find the matching CFML-file by myself, strange.
We have some plans with ContentBox. Imagine, if we have tons of installations of ContentBox on our servers. How cool is it, to run updates centralized in no time. We do this already on other platform like PHP. This saves enormous time and money.
Yes, and that would be a problem if you are only allowed to run the updater on the dev site. The data changes would never get run on the other servers unless Martin reverse-engineered the updaters and manually ran the SQL changes on his other environments at the same time that he deployed the code.
I don’t know of any good work around for that unless the ContentBox DB kept track of its own versioning and ran any missing scripts on initialization that were present in patches but hadn’t been run on that version of the database.
I’m curious how other frameworks/applications handle this.
It’s been awhile since I’ve used Navicat, but i think it’s just a SQL client. You would have to extract the SQL that the updater runs and then run it manually in the SQL Client. (Assuming it isn’t using ORM)
A tool such as RedGate SQL compare could help, but you would have to know what data needed to be moved or you might accidentally wipe out production data with your dev data in the wrong tables.
Next question, I am assuming that your have a deployment system in place. Could you explain this process to me, if the process is something like what I think it is, then I may have a solution.
Andrew, our deployment system does the following via it’s own scripting language for ContentBox:
It copies the files from the update out of a zip to the target webspace. I have to take care, that some files will be excluded form the copy process, e.g. the application.cfc which holds data on a per site base.
After the copy process i can add more scripting stuff as needed. e.g. i could run SQL-scripts. If all web spaces are updated, tomcat will be restarted.
This process will be repeated for all ContentBox installations on the server. The Managment server holds a list, containing all web spaces having ContenBox, and of course other web applications we’re using on the servers. E.g. on a php server, WordPress, Contao, Presta Shop are integrated into the deployment server.
The deployment system is originally responsible for the Windows software on servers and/or clients. Meaning, we do not install any software on any device manually, On a web server, we’re deploying “packages” starting from Microsoft patches to tomcat, Railo, PHP, MS-SQL whatever a device is suposed to to.
As i mentioned before, something needs to be done for ContentBox to get the update installed.