What is Thundercat? Download My first contribution to the OS community,
Thundercat is a MySQL administration tool... or at least an attempt at it.
If you have used Navicat for windows, this is very similar.
Requirements Python (py3k not yet supported)

wxPython. This is the GUI. You most likely already have this installed because another app probably uses this.

MySQLdb. A python package for connecting to MySQL.

Before you use it... Know that it's not finished yet. You'll see the some menu and toolbar items don't work yet.
Here's a list of what can currently be done:

I have not tried this in windows. My guess is that it won't work.
If someone tries it, let me know the results :)

It still needs alot of touching up. Needs refactoring, cleaning up debug code, etc.
It still works though, so, enjoy :)
Usage $ python main.py

When it opens up, add a new connection. To do this, click the first icon on the tool bar, or go to File -> New on the menu.

Connections / Servers / Hosts

Once you've typed in the credentials, click 'test connection' to make sure it can connect. If the background of the dialog window turns red, it means that either your username, password, or server address is wrong. If it turns green, it means it connected successfully; go ahead and click 'Okay'.

Now that you've added the connection, it will show on the pane to your left, aka the connection tree.
It will be displayed as whatever you put in 'Connection Name' on the new connection dialog.
double-click it or click the arrow next to it to view its databases.


Now that you have your connection(s) shown on the left, Double-click a database to view its table.
Right-clicking on a connection will give you the following options:

Those should be self explanatory.


Right-clicking on a table gives you the following options: If your database has any tables, double-click it to expand and see them.

When you double-click a table, its content is shown on the pane to your right.
You may edit data in the cells.After you edit a cell, it will update when you focus out of it (ie, press tab or enter). And by update i actually mean it will update the database.

To delete a row, click on the row label and press delete, or right-click and select 'delete row(s)'
Do not use shift to select multiple rows. It is buggy. Instead, use ctrl. you can just click on a row label while holding ctrl, and drag it up or down to select multiples. After you've selected multiple rows, right click on a row label and select "delete row(s)"

To add a new row, simply move the cursor to the last row and press the Down Arrow key. This will create a new row. The new row will have a light yellow color. It will remain this way until a successfull insert happens. And as you read a few paragraphs up, an insert/update occur whenever you switch focus or press enter. If this is confusing, here's a scenario...

You create a new row. It has a yellow background.
You enter data in the first cell, and press 'Tab' to move to the next cell to the right.
Thundercat will attempt to insert the new row into the databae.
If it was successfull, the background will go from yellow to white.
If it was not successfull, it will remain yellow

This screenshot may help you out:

In this screenshot, i just created a new row. The ID and last_searched values are automatically added because ID is AUTO_INCREMENT and last_searched is a DATETIME type (neat, i know).

I then go ahead and enter something in search_term, for example, 'Python!', and press 'Tab' or 'Enter'. By doing this, Thundercat will attempt to insert that row into the database...
INSERT into search_terms (ID, search_term, last_searched, ip) values (3, 'Python!', 2009-06-25 04:32:21.511211, '') If the query above was successfull, the background would turn white, if not, it would remain yellow. I would then type something under 'IP' and press enter, and it would probably be successfull.

Alright, sorry for extensive explanation above. But its important for users to know when and if data was inserted or not.
And remember...
When you press Down Arrow and the the new row shows, if you have any AUTO_INCREMENT field, an ID is displayed on the grid for you. If any field is of type DATETIME, the current datetime is also shown on the grid for you. It is just on the grid at this point, it has not inserted those values into your database yet.