emma stands for "extendable mysql managing assistant"
it is the successor of yamysqlfront. extendable means that it shall get a bunch of
plugins developed by users of it. as an example a table editor plugin is included
in this distribution. a table-key editor (like that from yamysqlfront) is still
missing but i want to write one...
at the moment i have only a python source distribution package. all people familiar
with python's dist package know how to install it. for all others, see below.
any help is appreciated!
if you have good ideas whats missing for emma or if you find a bug, please mail me.
i am also happy about bug or feature patches! for the future i plan to make this page
more dynamic to use it like a bug- and feature collector.
i will give subversion access to everyone who is interessted to contribute! don't
hesitate! write cool plugins and bugfixes! (i am currently working on my master
thesis and that occupies much of my brain and time...)
requirements of source package
- at least python2.4
- python module python-gtk2
- python module python-glade2
- python module python-mysqldb
- these modules require a gtk+ runtime and mysql client libs
emma is now part of
debian/unstable. with unstable in your /etc/apt/sources.list you can
install it with these commands:
$ apt-get update
$ apt-get install emma
Thanks to Junji NAKANISHI who ported it to
FreeBSD. there it can be installed using
$ cd /usr/ports/databases/emma && make install
# or:
$ pkg_add -r emma
installing from source package
on "unix-like" systems:
$ wget .../emma-0.4.tar.bz2
...
$ tar -xjf emma-0.4.tar.bz2
$ cd emma-0.4
$ # get root privilegues, maybe using "su" or "sudo"
$ python setup.py install
if you have problems with the last step, check that you have at least python2.4:
$ python -V
Python 2.4.4c0
maybe your python binary is called python2.4 so try python2.4 setup.py install.
if everything went fine you should be able to start emma like this:
$ emma
if emma doesn't do what you expect it to do then try enabling the debug output. at the moment
this is very verbose. this output could bring enlightenment whats missing...
here is the command line options usage:
$ emma --help
usage: emma [-h|--help] [-d|--debug] [-l output_log [-f|--flush]]
-h|--help show this help message
-d|--debug output debug information on stdout
-l|--log FILE append all output to a specified log file
-f|--flush flush {stdout,log} after each write
on win32 systems the procedure is basically the same with the difference that a usual
windows user feels uncomfortable on the command line. here is an outline:
- get python for win32 from here.
- install python
- get the python-mysqldb module for win32 from here.
- install the python-mysqldb module using the provided installer.
- get the python-gtk 2.8 and -glade2 packages for win32 and python 2.4 from here.
(yes: pygtk-2.8.6-1.win32-py2.4.exe and pycairo-1.0.2-1.win32-py2.4.exe)
- install the python-gtk modules using the provided installer.
- get a gtk+ runtime for win32 from here
- install the gtk runtime.
- using python.exe or pythonw.exe you can launch emma. writing the command to a win32 link file is advisable. TODO: python dist-utils installation
locations on win32??
downloads:
thanks to
Piotr Ozarowski for contributing the debian package.
if you are using debian, please use the current
debian unstable emma package!
(due to a conflict with another debian package the executable in this file is called Emma)
João Pinto contributed a .deb file which is installable on ubuntu dapper - thanks!
i also plan to provide an easy win32 installer with all needed dependencies included.
compared to yamysqlfront emma has many advantages:
- easy build-environment using python's dist-utils (possibly also py2exe and friends)
- native platform independence (python, gtk)
- fast and funny development (no more 5 minutes and longer compile runs...)
- cool runtime features (python's module reload...)
- easy to read source code (hopefully also understandable by novice programmers)
emma screenshots
|
emma-0.4_table_and_blob.png
130.1 kB
2006-10-21 14:45:08
Description:
- create table display
- describe table display
- table status display
- blob editor with text from a (previously) selected field/row/query tab
|
|
emma-0.4_2tabs.png
143.8 kB
2006-10-21 14:45:08
Description:
- query log at the bottom
- configured mysql hosts at the left
- one mysql connection and one database opened
- two (renamed) query tabs
- query result in utf8 encoding
- automatically created select query build from configurable templates
- automatically rewritten select-"order by" query after click on column header
- opened table editor on big table
|
currently implemented features:
- multiple query tabs each with its own database connection
- renameable query tabs
- each tab can have its own encoding (for display AND edit)
- all python encodings configurable
- query results editable if sufficient key field is visible in the result
- blob display/edit (currntly only for text)
- save and load blob contents to/from file
- blob wrapped display
- sql log for each executed query
- automatic query rewrite on click at column header to change the sort order
- double click on table executes first defined query template (default: select * from table order by primary_key)
- save current order for this table
- all settings saved in human read-/editable configuration file
- configurable fonts for query result and query entry
- local regular expression search in query result
- save query result as "sql-insert" script
- save query result as csv file
- insert/delete records on query with suitable key-field visible
- automatic timed reexecution of current query in selectable 0.5s interval
- load/save query source
- arbitrary query templates reachable with one click
- execution of BIG possibly compressed sql dumps (a bit slow at the moment)
- table editor plugin:
- create table
- add/remove/modify fields
- all mysql types and options visible (as of 4.1)
known missing features:
- sql syntax highlighting as in yamysqlfront
- table & fieldname completion as in yamysqlfront
- pretty/compact format of query as in yamysqlfront (currently in work)
- font of entry widget in query result view
- on query failing with mysql error search for tablenames and fieldnames that may be wrong and propose replacements
- user manager plugin
- table-key editor addon to table_editor plugin
- some kind of sql dump functionality
- xls export using pyExcelerator
known bugs:
- a database is always needed to connect to a mysqlhost
used to select "test" as default, but newer mysql-servers not always have it. so
please enter "mysql" as default database in the connection window
- comments in the query source can disturb query parsing
comments in front of the executed query can cause emma not to correctly detect
the used tables. result: the query result is not editable
- inform tab if a database connection is closed
- allow execution of queries if only a host ist selected
currently query execution is only allowed if a tab is bound to a database.
possible bugs (reported not verified):
- affected rows count is not always correct
seen on emma in win32 - mysql server versions and executed query would be interesting
- comments in the query source can disturb query parsing
comments in front of the executed query can cause emma not to correctly detect
the used tables. result: the query result is not editable