Hi Guys,
Here's an overview of the problems I ran into, but first some background info. We've been keeping up since 1.0.7 and went public in september 2009 with the 1.0.9 release, so our data has gone through some migrations already. I must say this was the smoothest migration yet. Since we're running on relative modest (virtual) servers, I've done the migration task locally. and then copied data over to the test server and production server.
Problems I ran into:
- "php symfony propel:insert-sql" gave a fatal php memory allocation error (while trying to allocate 39 MB or so on an 8 GB machine). Luckily the migration guide explained this was necessary to empty the database after the installer ran. So I've worked arround this:
- mysqldump with -d option: dump the schema
- drop existing database
- recreate database
- restore dump
- Had to apply the random slug patch
- Not all empty values in the database are NULL, there are some '' as well. This gives problems for some isset ($this-> ...) tests. Since i didn't know whether this was because of previuous data migrations, or that working in the new version would also generate some empty strings in stead of null values, I've modified the tests to ignore empty strings as well. At the moment this only seemed necessary in the Actor Detail template. I think this might be a VIOE issue, better solved by updating the database to eliminate empty strings, but as i said i don't know what new records will do yet.
- Also not all of our translations were in apps/qubit/i18n. This is probably due to the fact that we moved the application out of the web root, and made symlinks to the parts that needed web-access (and I might have forgotten to symlink this folder. They were however present in the i18n of the plugins, so we've migrated the plugins translations as well. Again I think this is a VIOE issue, and I just mention it here so others who might prefer to put no application code in the web server root, know this might be a problem. (I must say I wasn't happy when the www folder was dropped in 1.0.9, but I guess it wasn't maintainable with all the plugins ;-).
- I've also made some changes in the code to address our treeview sorting issue, caused by mixing identifiers with null values. This is very VIOE specific and already is reported as a bug. It is probably undesirable anyway to accommodate null-identifiers and identifiers at the same time, so I won't elaborate on this further.
All in all, a very smooth migration indeed. What worries me most is the Null vs. empty string problem, as I don't think this is a VIOE thing and impacts our data.