Hi,
I am about to go grey-haired from trying to migrate our database
schema. How on earth can this be done without screwing it all up
royally? A part from tedious, manual creation of many many alter
statements, what do you use? How do you do it?
That is the short question...

...here is the longer explaining rant:

The problem is character sets and collations. They can be ignored for
smaller, english applications but are a necessity for larger and
especially non-english language applications.

Typical affected parts of my data:
Any character-field used as a "keyword" or as a unique index. Things
of that sort MUST bave the correct collation to work.
Any list of names that should be sorted. Names of files, folders,
people... whatever. Without the correct collation a portion of the
data will be sorted the wrong way.
Any texts that should be searchable. The wrong collation means the
search feature will find too many or too few results in some cases.

So what's the problem?
Cake's schema support ignores these thing completely. (which is better
than partial support IMHO)
mysqldiff.org and most reasonably priced software I have tried for
creating diffs or migrations have only partial support. Ignoring field-
level settings while altering table-level defaults... but keeping all
settings when creating new tables.
MySQL (at least v5) applies the current default table-level settings
to any field without its own specification. Which makes the support of
the software I have tried even more treacherous to use. They will
implement a new table default but that will have no effect on any
existing field.

All this makes for a high-risk situation where a migration is almost
more likely to cause problems than not.

Leaving character set and collation out will write the current
defaults (of a higher "level") to the created table or field. That
means that the only level where a migration tool absolutely must
support this is on the fields. Any change to anything else will have
no effect at all on existing fields or tables... I have found no
software that support this. :)

My problem is finding a way of modifying my schema this once so that
the next time I can use an "automated" diff or migration.

Martin - feeling screwier than sql
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to