Hitherto, Joomla has not had to an SQL upgrade for a *long* time - our
community is not really familiar with the process. Ideally we need
some sort of "thing" that takes the pain out of a 1.5 to 1.6 upgrade,
just as we did with the installation in the early Mambo days.
So, given this question is on the communities mind, it seemed like
this would be a nice, self-contained mini-project to start thinking
about what the process could look like and then what the technical
difficulties - and hopefully a couple of people can put their hand up
to run with it.
Thanks in advance.
Regards,
Andrew Eddie
http://www.theartofjoomla.com - the art of becoming a Joomla developer
I have the distinct feeling you're trying to over complicate something
in the most part. The majority of the changes are minor with the
exception of ACL which will require some significant attention. The
nested categories is pretty simple since we really only have a two
level structure at the moment, some shuffling might be required
temporarily and a tree rebuild once its done to get the thing working
properly. But if it works, at the end of the day I guess it works.
> And well, through the process I found some details that might help
> polish the db a little, and well, as I pointed out over there, I think
> Joomla needs db naming conventions even though there seems to be
> already some implicit ones (I couldn't find any over here
> http://docs.joomla.org/Coding_style_and_standards). As suggested by
> Amy, I'll quote those details over here. Hope they are of some actual
> use and not just noise:
>
> - Not all PKs are called id even though most are, e.g.
> messages.message_id, banner.bid, bannerclient.cid
My own belief of calling everything some ubiquitous "id" field ends up
hurting you later when you end up starting to do table joins -
especially when they start to become complicated. When you start to
look at composite keys you end up wanting to use more than just 'id'
as part of the key anyway, so I personally find that it is easier to
just do it by default. This also makes determining what the foreign
key field name should be easy: the same as the primary key of the
table you're linking to.
> - Not all tables have the PK in the first place, e.g. newsfeeds
It took me a while to work out what you mean here, perhaps lost in
translation somewhere. You mean that the first column of the table
isn't the primary key? I'd suggest this is a legacy thing.
> - Some "FKs" are abbreviated, some are not, e.g.
> access_rules.section_id is nice, while banner.cid is not
Most new ones should be in a longer form, banner.cid is an ancient field.
> - I "think" not all data types are optimized (though most are), e.g.
> components.enabled is TINYINT(4)
What do you suggest it should be instead?
> - There is a sections table?
What is this in reference to? There might be a legacy FK to it in the
content table and I'm sure that will remain at least for this release.
It will be useful for at least upgrading a 1.5 site to 1.6 in the
early stages, after that point it might not be useful and I'm sure we
can then mark it as deprecated and schedule its removal from the
schema.
> - And last but not least, no db level referential integrity (even
> though MyISAM just supports the notation and not the behaviors that
> could be nice enough... and perhaps future support for InnoDB?, it has
> side benefits! [such as nulls actually not using storage space])
It probably hasn't been done because it really doesn't mean anything.
Almost every table create last time I checked set the engine to MyISAM
anyway. This is perhaps more of a legacy habit that hasn't been
followed because it has no major benefit overall at this point.
If you're going through all of the tables it would be great if you
could document stuff here:
http://docs.joomla.org/Tables
That way we start to get stuff up there at least the base line and
work towards writing all of this knowledge down and have a place we
can record changes against as well until we work out the ORM path.
A lot of items are broken because they've been broken for a while and
unbreaking things causes compatibility issues. Even small changes,
such as a field rename, can trip people up
Sam Moffatt
http://pasamio.id.au
--
Marco Giorgetti
http://www.marcogiorgetti.com
Anyone given this (Joomla 1.5 to 1.6 upgrade process) any traction?
Regards,
Andrew Eddie
http://www.theartofjoomla.com - the art of becoming a Joomla developer