Development cycle in C5
Permalink
So, CMSes provide nice platforms for hosting enterprise applications. But, it's not clear what the development/test/release cycle looks like for such applications.
In C5, a team of developers might work in a development environment to create an application with lots of nifty controllers, models and views, and maybe some single pages, modules, etc. All of these things get registered with C5 through the admin dashboard, and so forth.
But, then how do we transition the newly developed stuff to a testing platform? Perhaps that's easy, since we can just create everything anew in testing.
But, next we need to release all of our stuff into a production environment that may be a busy live site. We don't want to have to go through all of the manual steps of registering all of our cool new stuff through the admin dashboard--that might take too long, and we might not remember it all.
We also must be careful not to just replace the existing database with the one that we ended up with in development/testing, since the production database might have lots of important information on registered users, possibly content that they've submitted, etc.
So, given a production-ready site that has gone through testing, and a busy live site that we wish to upgrade to our newly developed and tested release, how do we script the upgrade? Is there any documentation for what must happen in order to add the new functionality while preserving the existing user data?
Thanks all.
-Lane
Austin, TX
In C5, a team of developers might work in a development environment to create an application with lots of nifty controllers, models and views, and maybe some single pages, modules, etc. All of these things get registered with C5 through the admin dashboard, and so forth.
But, then how do we transition the newly developed stuff to a testing platform? Perhaps that's easy, since we can just create everything anew in testing.
But, next we need to release all of our stuff into a production environment that may be a busy live site. We don't want to have to go through all of the manual steps of registering all of our cool new stuff through the admin dashboard--that might take too long, and we might not remember it all.
We also must be careful not to just replace the existing database with the one that we ended up with in development/testing, since the production database might have lots of important information on registered users, possibly content that they've submitted, etc.
So, given a production-ready site that has gone through testing, and a busy live site that we wish to upgrade to our newly developed and tested release, how do we script the upgrade? Is there any documentation for what must happen in order to add the new functionality while preserving the existing user data?
Thanks all.
-Lane
Austin, TX
personally, the way i do it.
i setup a clean install in the testing environment. do my work from there. let the customers gain access to the site and let them add any content if they wish (while reminding them that it's only a testing environment so that they have any content they add backed up).
any custom code i would ALWAYS bundle in packages.
the switch to production is then pretty straight forward. disable and clear cache, copy database, copy site, change config file and last add any packages that might exist.
so far i've made 10 or so concrete5 sites and never had a problem with the switch from testing to production, nor have i had a problem with "remembering"/"forgetting" to add/update stuff since it's quite simple.
i setup a clean install in the testing environment. do my work from there. let the customers gain access to the site and let them add any content if they wish (while reminding them that it's only a testing environment so that they have any content they add backed up).
any custom code i would ALWAYS bundle in packages.
the switch to production is then pretty straight forward. disable and clear cache, copy database, copy site, change config file and last add any packages that might exist.
so far i've made 10 or so concrete5 sites and never had a problem with the switch from testing to production, nor have i had a problem with "remembering"/"forgetting" to add/update stuff since it's quite simple.
You could handle all new Feature development on the Test site, then move your new code over to the production site. From there You could have a Branch in your site nav for "In production" and that section of the site is completely hidden and protected with the proper permissions. Once the new content has be created for a new page and has passed all of your approval processes, a simple drag and drop puts that page into the correct sections for your Live areas.
c5 also supports a Public Date for all pages as well as the need to approve all new content changes. This can be spread out among different user levels using Advanced Permissions. For more on Permissions go here >http://www.concrete5.org/documentation/general-topics/simple-permis...
c5 also supports a Public Date for all pages as well as the need to approve all new content changes. This can be spread out among different user levels using Advanced Permissions. For more on Permissions go here >http://www.concrete5.org/documentation/general-topics/simple-permis...
- build extensions in the package format - a bit more coding overhead, but if you want a clean upgrade script and the problem is encapsulated enough it works well since you can version, run upgrade scripts, db schema's etc..
- Also take a look at the "Database Tables and Content" section of Dashboard -> Settings -> Debug
Using the site_db.xml file will allow you to manage schema changes and you can add that file to your projects version control system.
As far as creating attributes & single pages, just keep a list of what needs to be added.