oramerge – Three-way merging of schemas
Purpose
oramerge can be used for merging the changes between two Oracle
database schemas into a third one. Depending on the existance/non-existance
of schema objects in the three schemas oramerge does the right thing.
If a schema objects exists in all three schemas, the external tool
merge3 will be used for creating a merged version of the object
(except for tables where the appropriate ALTER TABLE
statements will be
output if possible).
Options
oramerge supports the following options:
- -v <flag>, --verbose <flag>
Produces output (on stderr) while the database is read or written. (Valid flag values are
false
,no
,0
,true
,yes
or1
)
- -c <mode>, --color <mode>
Should the output (when the
-v
option is used) be colored? Ifauto
is specified (the default) then the output is colored if stderr is a terminal. Valid modes areyes
,no
orauto
.
- -k <flag>, --keepjunk <flag>
If false (the default), database objects that have
$
orSYS_EXPORT_SCHEMA_
in their name will be skipped (otherwise these objects will be considered as merge candidates). (Valid flag values arefalse
,no
,0
,true
,yes
or1
)
- --thick <flag>
If true, use
oracledb
s thick mode. (Valid flag values arefalse
,no
,0
,true
,yes
or1
)
- --config_dir <directory>
In
oracledb
s thin mode, specify the directory that contains thetnsnames.ora
file. This can be used if “Connect Descriptor Strings” fromtnsnames.ora
must be used buttnsnames.ora
can’t be found in its default location.
Example
Output a script that merges the changes between user@db
and user2@db2
into user3@db3
:
$ oramerge user/pwd@db user2/pwd2@db2 user3/pwd3@db3 -v >db.sql