Jetendo CMS now has a automated database install process.

Sun, Feb 02, 2014 at 2:10PM

There were over 200 hours of work done in the last year to enable the Jetendo CMS database upgrade process.

This work is now at the point where I finished a system that can automatically export and import the schema and shared data that is needed for Jetendo CMS to function in a clean installation.  

The system is able to ensure the shared data is correct by deleting and re-creating the records when the database structure changes.

There is a link in the Jetendo CMS Server Manager browser interface that prepares the database files needed for installing the current version of the database on another system.  Anyone working on the project can easily generate and commit these files to the git repository when the database changes so people installing from scratch will have the same data as people with an existing installation.

How it works

When the application starts, if checks that a jetendo_setup table exists and the database version.  If the database doesn't exist, it creates the entire database and sets Jetendo into setup mode.

Setup mode displays a form for you to create the main server admin account and IP address for the admin domain.

After submitting that form, it redirects to the login page.

At this point, you have a working jetendo installation with the ability to create unlimited sites.

If the database does exist, it will verify the integrity of the installation against the current schema and data files before serving the first request.  The upgrade process is temporarily disabled until there is further testing, but the install process is fully working.

No more direct edits of the schema

All future changes to the database will require becoming programmed into the source code instead of changing the database directly.  This will ensure that the entire system can migrate from one version to the next in an automated way across many installations and versions of Jetendo.

Next on the todo list

There will be some more automatic installation & verification work done for creating the cron jobs, and I'm going to add more validation of the configuration before the app starts over time to prevent installation mistakes. 

I'm going to finish and publish the Jetendo Server project after that.   Once the server project is published, Jetendo CMS will finally become a complete solution for highly automated distributed teamwork on custom web sites.

Bookmark & Share