Wow, Davide.

That *is* shooting mosquitos with cannons, but it turns out to be  
extremely cool! :-)

I'm certain that someone will cook up some fancy tricks with this new  
functionality! Thanks a lot!

On Aug 30, 2007, at 1:11 PM, Davide Alberani wrote:

> Look ma'... another overkill solution of mine! ;-)
>
> In the CVS there's the first support for custom queries running
> the imdbpy2sql.py script.
> It can be used to convert a whole database to InnoDB after it
> was created as MyISAM (and much more, obviously).
>
> Beware that it's mostly untested so if you can try it!
>
> In the documentation I've added - in my funny English - these
> notes and instructions:
>
> [MySQL InnoDB]
> InnoDB is abysmal slow for our purposes: my suggestion is to always
> use MyISAM tables and - if you really want to use InnoDB - convert
> the tables later.
> The imdbpy2sql.py script provides a simple way to manage this case,
> see ADVANCED FEATURES below.
> Anyway, if you really need to use InnoDB, in the server-side settings
> I recommend to set innodb_file_per_table to "true".
>
> Beware that the conversion will be extremely slow (some hours), but
> still faster then using InnoDB from the begin.
>
>
>   ADVANCED FEATURES
>   =================
>
> With the -e (of --execute) command line argument you can specify
> custom queries to be executed at certain times, with the syntax:
>   -e "TIME:[OPTIONAL_MODIFIER:]QUERY"
>
> Where TIME is actually one of these: 'BEGIN', 'BEFORE_DROP',  
> 'BEFORE_CREATE',
> 'AFTER_CREATE', 'BEFORE_MOVIES', 'BEFORE_CAST', 'BEFORE_RESTORE',
> 'BEFORE_INDEXES' and 'END'.
>
> The only available OPTIONAL_MODIFIER is 'FOR_EVERY_TABLE' and it
> means that the QUERY command will be executed for every table in the
> database (so it doesn't makes much sense to use it with BEGIN,  
> BEFORE_DROP
> or BEFORE_CREATE time...), replacing the "%(table)s" text in the QUERY
> with the appropriate table name.
>
> You can specify so many -e arguments as you need, even if they
> refers to the same TIME: they will be executed from the first to  
> the last.
> Also, always remember to correctly escape queries: after all you're
> passing it on the command line!
>
> E.g. (ok, quite a silly example...):
>   -e "AFTER_CREATE:SELECT * FROM title;"
>
> The most useful case is when you want to convert the tables of a MySQL
> from MyISAM to InnoDB:
>   -e "END:FOR_EVERY_TABLE:ALTER TABLE %(table)s ENGINE=InnoDB;"
>
> If your system uses InnoDB by default, you can trick it with:
>   -e "AFTER_CREATE:FOR_EVERY_TABLE:ALTER TABLE %(table)s  
> ENGINE=MyISAM;" -e "END:FOR_EVERY_TABLE:ALTER TABLE %(table)s  
> ENGINE=InnoDB;"
>
> Cool, uh?
>
>
>
>
> -- 
> Davide Alberani <[EMAIL PROTECTED]> [PGP KeyID: 0x465BFD47]
> http://erlug.linux.it/~da/
>
> ---------------------------------------------------------------------- 
> ---
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems?  Stop.
> Now Search log events and configuration files using AJAX and a  
> browser.
> Download your FREE copy of Splunk now >>  http://get.splunk.com/
> _______________________________________________
> Imdbpy-devel mailing list
> Imdbpy-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/imdbpy-devel

-- 
Jesper Noehr
[EMAIL PROTECTED]




-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Imdbpy-devel mailing list
Imdbpy-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/imdbpy-devel

Reply via email to