I’m more than a little disappointed to see that with version 3.0 apart from the system paths, and file upload preferences every other site configuration that is used on a regular basis (Channels, Categories, Channel Fields, Templates, etc) are still managed via a GUI in the control panel.
Systems such as Django control all of the database configuration as text files. This allows a developer to make changes and updates to the database without the need of a GUI. This means I can track changes to my models in Git, and explicitly push changes to the live server. This sets the path for clear migrations when database changes happen. But at the very least it means I don’t have to fill out a series of buried web forms when configuring my site’s content. The current method is very time consuming and error prone (“Wait, what did I name that channel? How did I configure that other image field?” etc.)
Right now, if I need to make a change to live site that requires changing or adding a channel I have two options: I can do a destructive migration down to my local env, make my changes, and then do a wholesale replacement of the live database after pushing my code (this process.) Or I have to duplicate all of my changes locally as well as live, then push my code up and manually sync everything up. These are both archaic error-prone processes that nearly make ExpressionEngine more trouble than it’s worth in today’s modern development workflows.
I would like to see as much of the site as possible that is my configuration stored in text files vs web forms and the database. I would like to see a clear method for database migrations that isn’t manual and destructive.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.