Thursday, June 4, 2009

Planned interface for phpmyadmion Synchronization

GUI 1

On pressing the synchroninzation tab at the top, this GUI will be shown. Here the host, username, password, port and database name for the databases to be synchronized will be given.
On the basis of the given information, connections of databases are established with their respective servers.

On pressing "Go" the next GUI will be shown.


GUI 2

In this GUI, corresponding tables of sourcedb and targetdb will be shown.
Red, blue and green color indicates structure difference, type difference and data difference respectively. In front of the table name the presence of red, blue or green button will indicate that there is a difference in structure, type or data. The colored buttons are clickable and on pressing the green button in front of table name 'Person', the data of target table will be synchronized with that of source table.
Also the corresponding query generated for the required synchronization, will be shown in the text area at the bottom. Color of the button(data sync, structure sync or type sync) will change after it has been clicked to confirm that the command has been saved for execution. This way any type of synchronization user want, will be saved.
I am also thinking to add a remove button after each query in the text area, to facilitate the user to revert any synchronization selected previously.
Once the "Execute All" button is pressed all the saved synchronizations will be executed. This way user can synchronize selective tables from the databases.
The presence of the "+", "-" signs with source and target table Organization shows that this table is present in the source and not present in the target.
The "Synchronize databases" button will synchronize the target database with the source database and this comprises of applying all the differences on the target database.






























Tuesday, June 2, 2009

Activities after my exams

I was busy with my final exams from 18 May to 28 May. I was unable to give time during that one and a half week.
As coding started from 23 May and I am behind the schedule so I have planned to cover up that time.

Firstly, I am working on the plan till the mid evaluation. The plan will include my weekly milestones and soon I will be sharing that.

I am setting the environment these days. I have downloaded SVN and have checked out phpmyadmin code. Also I have planned to use Eclipse and Xdebug or Nusphere for debugging.

Currrently I am looking at different tools available for synchronization, which could give me an idea about the UIs. I have analyzed some tools which includes Navicat, SQL Yog and Spectral Core. After analyses I have identified some UI which should be there in the synchronization process.
Also I thought about where to place the synchronization button or tab in the original phpmyadmin page. Most appropriate place I could find was with the other tabs like "Databases, SQL, Variables,..." on the phpmyadmin page.

Other than the UI, I have also started to work on the backend logic. I took two tables from the same database on the same server and found structural differences. I yet have to apply those differences on the target database.

I also went through the code of phpmyadmin. I looked at the files db_create, db_printview and index.php.

Saturday, May 16, 2009

Rough Interface!



After reading the tracker and looking at some synchronization tools I came up with a sample interface. Although it is very raw but atleast it gave me an idea of what should be there in the interface.

Thursday, May 14, 2009

Tracker

I read the tracker links and got to know that there are three types of synchronization that I have to perform.
First, structure synchronization that includes making the structure of two tables in databases same. This includes making the fields in table same.
In type synchronization data types of the tables will be matched and then synchronized.
Then comes synchronization of the data.
All these synchronizations can be on one server or on remote servers.

Also I saw the interface of the tool Navicat mentioned in the tracker. I understood that the interface should be such that tables of the two databases should be shown in two columns and the user could select the tables which are to be synchronized. Also results should be shown to the user as which queries have been executed or which tables have been synchronized.

Tracker also gave some pointers as how can synchronization can be improved like by maintaining order of fields, or by maintaining keys and indexes. I also think that if these are maintained in structure synchronization then the ultimate goal of data synchronization can be achieved easily.

Tuesday, April 28, 2009

First change in code of phpmyadmin-Yeah!

Throughout this week I tried to read and understand the source code of phpmyadmin, which ofcourse is a difficult and time consuming job. Firstly I downloaded the code from sourceForge.net and compared it with the source that I had since I had installed xampp. They were exactly the same.

Then I found a link on mibbit-freenode and #phpmyadmin. Link is:
http://wiki.phpmyadmin.net/pma/Quick_Install

I tried and added a piece of code in the config.inc.php file by taking the code and I was able to secure my phpmyadmin by enabling a login page before it actually displayed the main screen of MySql. Yeah!
So, this was my first change in the code, Cheers...

The most interesting work that I kept doing was to introduce myself on the GSoC mailing list of selected students for 2009. And by starting a thread of GsocersPakistan, I was able to find 5-6 people from my nearby. So, it is a wonderful feeling and I am motivated...

Wednesday, April 22, 2009

Got Started!

Today I have taken notes of works to be performed till coming friday i.e. April 24 2009.
These include: Blog creation and adding the first post, getting the source code of phpmyadmin, etc.