[Module] Name=DBIx::Admin::BackupRestore Configlog.Creator=Module::Metadata::Changes V 1.01 Configlog.Parser=Config::IniFiles V 2.39 [V 1.13] Date=2008-07-09T09:59:00 Comments= < because all columns in a row were null & sub restore couldn't cope. - Document that all spaces are converted to underscores in table and column names. - New options: o The value of the database handle attribute FetchHashKeyName governs how table names are handled. Values are: 'NAME': The default - use the value returned by the database server 'NAME_uc': Convert table names to upper case 'NAME_lc': Convert to lower case. This is the recommended value This possible conversion of the case of table names affects how you specify table names in the constructor options: - rename_columns - rename_tables - skip_tables The following new options can be passed to the constructor of this module. o croak_on_error => 0 or 1. 1 is the default for backwards compatibility. During backup() the $sth -> execute() is now wrapped in eval{} and if an error occurs and croak_on_error is 1 we Carp::croak. If croak_on_error is 0 we continue. Not only that but if verbose is 1 the error is printed to STDERR. o odbc => 0 or 1. 0 is the default. During backup if odbc is 1 we use the simplified call $dbh -> tables() to get the list of table names. This list includes what MS Access calls Queries which are possibly equivalent to views. MS Access does not support the syntax used in the non-ODBC situation: $dbh -> tables('%' '%' '%' 'table'). o rename_columns => {}. You can specify a hash ref in the form: rename_columns => {'old name' => 'new name' ...}. For example 'order' is a reserved word under MySQL so you would use: rename_columns => {order => 'orders'} (or whatever you want). The option affects all tables. The database handle attribute FetchHashKeyName affects this option. Renaming takes place after the effect of FetchHashKeyName. o rename_tables => {}. You can specify a hash ref in the form: rename_tables => {'old name' => 'new name' ...}. The database handle attribute FetchHashKeyName affects this option. Renaming takes place after the effect of FetchHashKeyName. - Add method get_column_names(). This returns a hash ref where the keys are table names possibly transformed according to the database handle attribute FetchHashKeyName and the values are array refs of column names also converted according to the aforesaid and understated FetchHashKeyName. Further these column names are sorted and all spaces in column names are converted to underscores. This hashref is acceptable to the module DBIx::Admin::CreateTrivialSchema :-). - The demo examples/backup-db.pl contains a list of MS Access tables which you almost certainly want to supply to the skip_tables option if exporting from MS Access. EOT [V 1.06] Date=2005-05-20T15:45:00 Comments= < Do not fiddle timestamps 1 => Problem: All timestamps are unacceptable to the database. This is the default. All values are assumed to be of the form /^YYYYMMDD/ (fake reg exps are nice!). Hours minutes and seconds if present are ignored. Timestamps undergo either 1 or 2 transformations. Firstly if the value matches /^0000/ convert it to 19700101. Then all values are converted to YYYY-MM-DD 00:00:00. Eg: This - 00000000 - is converted to 1970-01-01 00:00:00 and today - 20050415 - is converted to 2005-04-15 00:00:00. You would use this option when transferring data from MySQL's 'timestamp' type to Postgres' 'timestamp' type and MySQL output values match /^(\d{8})/. 2 => Problem: Some timestamps are unacceptable to the database. Timestamps undergo either 0 or 1 transformations. If the value matches /^0000/ convert it to 1970-01-01 00:00:00. Values not matching that pattern are not converted. Eg: This - 0000-00-00 00:00:00 - is converted to 1970-01-01 00:00:00 and today - 2005-04-15 09:34:00 - is not converted. You would use this option when transferring data from MySQL's 'datetime' type to Postgres' 'datetime' type and some MySQL output values match /0000-00-00 00:00:00/ and some values are real dates such as 2005-04-15 09:34:00. - Expand the docs referring to fiddle_timestamp EOT [V 1.04] Date=2005-03-02T13:20:00 Comments= < ['some_schema_name']) the restore phase does not restore any tables in the named schema. This parameter is optional. It defaults to [] so the module behaves as it did before. - A new option has been added to the constructor: transform_tablenames. Now new(transform_tablenames => 1) chops the schema up to and including the first '.' off table names. Thus a table exported from Postgres as 'public.service' can be renamed 'service' when being imported into another database eg MySQL. Note: You would normally use these options to port data from Postgres to MySQL: new(skip_schema => ['information_schema' 'pg_catalog'] transform_tablenames => 1). This parameter is optional. The default value is 0 so the module behaves as it did before. EOT [V 1.03] Date=2004-09-14T13:39:00 Comments= < 0) we skip the documented process of fiddling values of type timestamp during a call to restore() so that the data being restored is inserted as-is. This option was requested by Daniel Santamaria. This parameter is optional. The default value 1 so the module behaves as it did before. EOT [V 1.02] Date=2004-08-26T12:57:00 Comments= < ['some_table_name']) the restore phase does not restore the tables named in the call to new(). This option is designed to work with CGI scripts using the module CGI::Sessions. Now the CGI script can run with the current CGI::Session data and stale CGI::Session data is not restored from the XML file. This parameter is optional. It defaults to [] so the module behaves as it did before. EOT [V 1.01] Date=2004-07-19T14:43:00 Comments=- Change Makefile.PL to coexist with Module::Build [V 1.00] Date=2004-01-22T12:37:29 Comments=- Original version