Michal Čihař - Summer of Code in phpMyAdmin

Summer of Code in phpMyAdmin

As the project is over, I think it's time for some summary. I think this year we got quite a good improvements. Most of them are already merged in trunk, but they might need some polishing, especially as the branches were developed separately and now they are first time used together. Anyway if you want to give new code a try, please go to our demo server and play with it!

So what do we have?

Import and export improvements

When I saw the proposal for first time, I thought that this is the best prepared proposal I've ever seen and we must have this student. And it turned to be true. Derek did great job, going in more directions than proposal included and brought great improvements to phpMyAdmin.

To start with import part, phpMyAdmin can now take any spreadsheet or CSV and create table from it automatically, with some kind of heuristics to find out numerical or date columns.

On the export side, he integrated PHPExcel library and phpMyAdmin can now generate proper Excel 2003 and 2007 documents.

The good thing also is that he wants to stay active even after GSoC.

Changes tracking

Even though Alexander Rutkowski was really quited in first half of the project, he indeed did code in that time and he brought feature that will be useful mostly for application developers. You can activate tracking of certain table, all your changes will be logged and you can get SQL commands to replay the changes on other database later.

This can be useful either for monitoring changes which users did or for making changes on development system and applying them later on production one.

Database synchronisation

Zahra Naeem did originally also apply for changes tracking, but as we did not want to have two students on the same topic, we persuaded him to take another project, which was not taken by other students - database synchronisation. This feature is somewhat similar to previous in one use case - you can use it to apply changes from development system to production one. You enter connection settings for two database servers and phpMyAdmin finds out difference between the databases and allows you to synchronize them.

I feel like Zahra felt that almost everything is done in mid-term and slowed down a lot and I'm still not happy with documentation he had provided. Hopefully he will get to that and improve it.

Replication support

This project was mentored by Marc and to me it looks like Tomáš Srnka did good job there. The changes are not yet in trunk, but hopefully they will be merged soon and I will then try to set up some replication stuff on demo server, so that you can play with it.

Permanent user preferences

The only unsuccessful project this year. The student failed to deliver something for mid-term evaluation and because of this he failed. We still have his patch in patch tracker and I think I will try to find time to look at it more deeply, whether it is worth using and cleaning up or it is better to write whole thing from beginning.


I think this Summer of Code was great and I hope next year we will be really a separate project there and not under MySQL hood (not that would be bad, but I think with five students it is better to be directly there than coordinating with MySQL guys). And I hope we will have more students like Derek :-).

New Comment

Due to excessive spam, new comments are disabled. If you have some feedback on this post, please send me email or followup on Twitter or Facebook.