- Add stdin batch mode. (Thanks: Thomas Roten).
- Add warn/no-warn command-line options. (Thanks: Thomas Roten).
- Upgrade sqlparse dependency to 0.1.19. (Thanks: [Amjith Ramanujam]).
- Update features list in README.md. (Thanks: Matheus Rosa).
- Remove extra \n in features list in README.md. (Thanks: Matheus Rosa).
- Enable history search via . (Thanks: [Amjith Ramanujam]).
- Upgrade prompt_toolkit to 1.0.0. (Thanks: [Jonathan Slenders])
- Change continuation prompt for multi-line mode to match default mysql.
- Add
status
command to match mysql'sstatus
command. (Thanks: Thomas Roten). - Add SSL support for
mycli
. (Thanks: Artem Bezsmertnyi). - Add auto-completion and highlight support for OFFSET keyword. (Thanks: Matheus Rosa).
- Add support for
MYSQL_TEST_LOGIN_FILE
env variable to specify alternate login file. (Thanks: Thomas Roten). - Add support for
--auto-vertical-output
to automatically switch to vertical output if the output doesn't fit in the table format. - Add support for system-wide config. Now /etc/myclirc will be honored. (Thanks: Thomas Roten).
- Add support for
nopager
and\n
to turn off the pager. (Thanks: Thomas Roten). - Add support for
--local-infile
command-line option. (Thanks: Thomas Roten).
- Remove -S from
less
option which was clobbering the scroll back in history. (Thanks: Thomas Roten). - Make system command work with Python 3. (Thanks: Thomas Roten).
- Support \G terminator for \f queries. (Thanks: [Terseus]).
- Upgrade prompt_toolkit to 0.60.
- Add Python 3.5 to test environments. (Thanks: Thomas Roten).
- Remove license meta-data. (Thanks: Thomas Roten).
- Skip binary tests if PyMySQL version does not support it. (Thanks: Thomas Roten).
- Refactor pager handling. (Thanks: Thomas Roten)
- Capture warnings to log file. (Thanks: Mikhail Borisov).
- Make
syntax_style
a tiny bit more intuitive. (Thanks: [Phil Cohen]).
- Protect against port number being None when no port is specified in command line.
- Cast the value of port read from my.cnf to int.
- Make a config option to enable
audit_log
. (Thanks: Matheus Rosa). - Add support for reading .mylogin.cnf to get user credentials. (Thanks: Thomas Roten).
This feature is only available when
pycrypto
package is installed. - Register the special command
prompt
with the\R
as alias. (Thanks: Matheus Rosa). Users can now change the mysql prompt at runtime usingprompt
command. eg:mycli> prompt \u@\h> Changed prompt format to \u@\h> Time: 0.001s amjith@localhost>
- Perform completion refresh in a background thread. Now mycli can handle databases with thousands of tables without blocking.
- Add support for
system
command. (Thanks: Matheus Rosa). Users can now run a system command from within mycli as follows:amjith@localhost:(none)>system cat tmp.sql select 1; select * from django_migrations;
- Caught and hexed binary fields in MySQL. (Thanks: Daniel West). Geometric fields stored in a database will be displayed as hexed strings.
- Treat enter key as tab when the suggestion menu is open. (Thanks: Matheus Rosa)
- Add "delete" and "truncate" as destructive commands. (Thanks: Martijn Engler).
- Change \dt syntax to add an optional table name. (Thanks: Shoma Suzuki).
\dt [tablename]
will describe the columns in a table. - Add TRANSACTION related keywords.
- Treat DESC and EXPLAIN as DESCRIBE. (Thanks: spacewander).
- Fix the removal of whitespace from table output.
- Add ability to make suggestions for compound join clauses. (Thanks: Matheus Rosa).
- Fix the incorrect reporting of command time.
- Add type validation for port argument. (Thanks Matheus Rosa)
- Make pycrypto optional and only install it in *nix systems. (Thanks: Iryna Cherniavska).
- Add badge for PyPI version to README. (Thanks: Shoma Suzuki).
- Updated release script with a --dry-run and --confirm-steps option. (Thanks: Iryna Cherniavska).
- Adds support for PyMySQL 0.6.2 and above. This is useful for debian package builders. (Thanks: Thomas Roten).
- Disable click warning.
-
Add
source
command. This allows running sql statement from a file.eg:
mycli> source filename.sql
-
Added a config option to make the warning before destructive commands optional. (Thanks: Daniel West)
In the config file ~/.myclirc set
destructive_warning = False
which will disable the warning before runningDROP
commands. -
Add completion support for CHANGE TO and other master/slave commands. This is still preliminary and it will be enhanced in the future.
-
Add custom styles to color the menus and toolbars.
-
Upgrade prompt_toolkit to 0.46. (Thanks: [Jonathan Slenders])
Multi-line queries are automatically indented.
- Fix keyword completion after the
WHERE
clause. - Add
\g
and\G
as valid query terminators. Previously in multi-line mode ending a query with a\G
wouldn't run the query. This is now fixed.
-
Add a new special command (\T) to change the table format on the fly. (Thanks: Jonathan Bruno) eg:
mycli> \T tsv
-
Add
--defaults-group-suffix
to the command line. This lets the user specify a group to use in the my.cnf files. (Thanks: Iryna Cherniavska)In the my.cnf file a user can specify credentials for different databases and invoke mycli with the group name to use the appropriate credentials. eg:
# my.cnf [client] user = 'root' socket = '/tmp/mysql.sock' pager = 'less -RXSF' database = 'account' [clientamjith] user = 'amjith' database = 'user_management' $ mycli --defaults-group-suffix=amjith # uses the [clientamjith] section in my.cnf
-
Add
--defaults-file
option to the command line. This allows specifying amy.cnf
to use at launch. This also makes it play nice with mysql sandbox. -
Make
-p
and--password
take the password in commandline. This makes mycli a drop in replacement for mysql.
-
Add support for wider completion menus in the config file.
Add
wider_completion_menu = True
in the config file (~/.myclirc) to enable this feature.
- Prevent Ctrl-C from quitting mycli while the pager is active.
- Refresh auto-completions after the database is changed via a CONNECT command.
- Upgrade prompt_toolkit dependency version to 0.45.
- Added Travis CI to run the tests automatically.
- Change dictonary comprehension used in mycnf reader to list comprehension to make it compatible with Python 2.6.
- Fuzzy completion is now case-insensitive. (Thanks: bjarnagin)
- Added new-line (
\n
) to the list of special characters to use in prompt. (Thanks: brewneaux) - Honor the
pager
setting in my.cnf files. (Thanks: Iryna Cherniavska)
- Fix a crashing bug in completion engine for cross joins.
- Make
<null>
value consistent between tabular and vertical output.
- Changed pymysql version to be greater than 0.6.6.
- Upgrade prompt_toolkit version to 0.42. (Thanks: Yasuhiro Matsumoto)
- Removed the explicit dependency on six.
- Customizable prompt. (Thanks Steve Robbins)
- Make
\G
formatting to behave more like mysql.
- Formatting issue in \G for really long column values.
- Upgrade prompt_toolkit to 0.38. This improves the performance of pasting long queries.
- Add support for reading my.cnf files.
- Add editor command \e.
- Replace ConfigParser with ConfigObj.
- Add \dt to show all tables.
- Add fuzzy completion for table names and column names.
- Automatically reconnect when connection is lost to the database.
- Fix a bug with reconnect failure.
- Fix the issue with
use
command not changing the prompt. - Fix the issue where
\\r
shortcut was not recognized.
- Add support for connecting via socket.
- Add completion for SQL functions.
- Add completion support for SHOW statements.
- Made the timing of sql statements human friendly.
- Automatically prompt for a password if needed.
- Fixed the installation issues with PyMySQL dependency on case-sensitive file systems.
[Casper Langemeijer]: Casper Langemeijer [Lennart Weller]: https://github.com/lhw [Phil Cohen]: https://github.com/phlipper [Terseus]: https://github.com/Terseus [William GARCIA]: https://github.com/willgarcia [Jonathan Slenders]: https://github.com/jonathanslenders