home | help
transformdb(1)		     General Commands Manual		  transformdb(1)

NAME
     transformdb - The Freeze database migration tool.

SYNOPSIS
     transformdb -o FILE [-i] [slice-options] [type-options]

	    Generates descriptors in FILE for a database.

     transformdb -o FILE [-i] [slice-options] DBENV

	    Generates  descriptors  in FILE for all databases in the environment
	    DBENV.

     transformdb [options] [slice-options] [type-options] DBENV DB NEWDBENV

	    Transform the database DB in the environment DBENV.  A  database  of
	    the same name is created in the environment NEWDBENV.

     transformdb [options] [slice-options] DBENV NEWDBENV

	    Transform all databases from the environment DBENV into the environ-
	    ment NEWDBENV.

DESCRIPTION
     The  FreezeScript	tool transformdb migrates a database created by a Freeze
     map or evictor. It accomplishes this by comparing the "old"  Slice  defini-
     tions  (i.e.,  the ones that describe the current contents of the database)
     with the "new" Slice definitions, and  making  whatever  modifications  are
     necessary	to  ensure  that the transformed database is compatible with the
     new definitions.  Full documentation for transformdb  is  available  online
     at:
     https://doc.zeroc.com/ice/3.6/ice-services/freezescript/migrating-a-freeze-
     database/using-transformdb

OPTIONS
     -h, --help
	    Displays a help message.

     -v, --version
	    Displays the Ice version.

     -DNAME
	    Defines the preprocessor symbol NAME.

     -DNAME=DEF
	    Defines the preprocessor symbol NAME with the value DEF.

     -UNAME
	    Undefines the preprocessor symbol NAME.

     -IDIR
	    Add the directory DIR to the search path for #include directives.

     -E
	    Print the preprocessor output on stdout.

     --output-dir DIR
	    Place the generated files into directory DIR.

     -d, --debug
	    Print debug information showing the operation of the Slice parser.

     --ice
	    Permit  use of the normally reserved prefix Ice for identifiers. Use
	    this option only when compiling the source	code  for  the	Ice  run
	    time.

     --underscore
	    Permit use of underscores in Slice identifiers.

     --old SLICE

     --new SLICE
	    Loads  the old or new Slice definitions contained in the file SLICE.
	    These options may be specified multiple times if several files  must
	    be	loaded.  However, it is the user's responsibility to ensure that
	    duplicate definitions do not occur (which is possible when two files
	    are loaded that share a  common  include  file).  One  strategy  for
	    avoiding  duplicate  definitions is to load a single Slice file that
	    contains only #include statements for each of the Slice files to  be
	    loaded.  No  duplication  is  possible  in this case if the included
	    files use include guards correctly.

     --include-old DIR

     --include-new DIR
	    Adds the directory DIR to the set of include paths for  the  old  or
	    new Slice definitions.

     --key TYPE[,TYPE]

     --value TYPE[,TYPE]
	    Specifies  the  Slice  type(s) of the database key and value. If the
	    type does not change, then the type only needs to be specified once.
	    Otherwise, the old type is specified first, followed by a comma  and
	    the  new  type.  For  example, the option --key int,string indicates
	    that the database key is migrating from int to string. On the  other
	    hand,  the option --key int,int indicates that the key type does not
	    change, and could be given simply as --key int. Type changes are re-
	    stricted to those allowed by the compatibility rules, but custom mi-
	    gration provides additional flexibility.

     -e
	    Indicates that a Freeze evictor database is  being	migrated.  As  a
	    convenience,  this	option	automatically  sets the database key and
	    value types to those appropriate for the Freeze evictor, and  there-
	    fore  the --key and --value options are not necessary. Specifically,
	    the key type of a Freeze evictor database is Ice::Identity, and  the
	    value  type  is  Freeze::ObjectRecord.  The latter is defined in the
	    Slice file Freeze/EvictorStorage.ice; however, this  file  does  not
	    need to be loaded into your old and new Slice definitions.

     -i
	    Requests  that transformdb ignore type changes that violate the com-
	    patibility rules. If this option is not specified, transformdb fails
	    immediately if such a violation occurs. With this option, a  warning
	    is	displayed but transformdb continues the requested action. The -i
	    option can be specified in analysis or automatic migration modes.

     -p     During migration, this option requests that transformdb purge object
	    instances whose type is no longer found in	the  new  Slice  defini-
	    tions.

     -c
	    Use  catastrophic  recovery on the old Berkeley DB database environ-
	    ment prior to migration.

     -w
	    Suppress duplicate warnings during migration. This option  is  espe-
	    cially useful to minimize diagnostic messages when transformdb would
	    otherwise  emit the same warning many times, such as when it detects
	    the same issue in every record of a database.

SEE ALSO
     dumpdb(1)

								  transformdb(1)

home | help