org.apache.openjpa.jdbc.schema
Class SchemaTool

java.lang.Object
  extended by org.apache.openjpa.jdbc.schema.SchemaTool

public class SchemaTool
extends java.lang.Object

The SchemaTool is used to manage the database schema. Note that the tool never adds or drops unique constraints from existing tables, because JDBC DatabaseMetaData does not include information on these constraints.

Author:
Abe White, Patrick Linskey

Nested Class Summary
static class SchemaTool.Flags
          Run flags.
 
Field Summary
static java.lang.String ACTION_ADD
           
static java.lang.String ACTION_BUILD
           
static java.lang.String ACTION_CREATEDB
           
static java.lang.String ACTION_DROP
           
static java.lang.String ACTION_DROPDB
           
static java.lang.String ACTION_EXPORT
           
static java.lang.String ACTION_IMPORT
           
static java.lang.String ACTION_REFLECT
           
static java.lang.String ACTION_REFRESH
           
static java.lang.String ACTION_RETAIN
           
static java.lang.String[] ACTIONS
           
 
Constructor Summary
SchemaTool(JDBCConfiguration conf)
          Default constructor.
SchemaTool(JDBCConfiguration conf, java.lang.String action)
          Construct a tool to perform the given action.
 
Method Summary
 boolean addColumn(Column col)
          Add the given column to the database schema.
 boolean addForeignKey(ForeignKey fk)
          Add the given foreign key to the database schema.
 boolean addPrimaryKey(PrimaryKey pk)
          Add the given primary key to the database schema.
 boolean createIndex(Index idx, Table table)
          Add the given index to the database schema.
 boolean createSequence(Sequence seq)
          Add the given sequence to the database schema.
 boolean createTable(Table table)
          Add the given table to the database schema.
 boolean dropColumn(Column col)
          Drop the given column from the database schema.
 boolean dropForeignKey(ForeignKey fk)
          Drop the given foreign key from the database schema.
 boolean dropIndex(Index idx)
          Drop the given index from the database schema.
 boolean dropPrimaryKey(PrimaryKey pk)
          Drop the given primary key from the database schema.
 boolean dropSequence(Sequence seq)
          Drop the given sequence from the database schema.
 boolean dropTable(Table table)
          Drop the given table from the database schema.
 java.lang.String getAction()
          The action supplied on construction.
 SchemaGroup getDBSchemaGroup()
          Return the database schema.
 boolean getDropSequences()
          If true, sequences that appear to be unused will be dropped.
 boolean getDropTables()
          If true, tables that appear to be unused will be dropped.
 boolean getForeignKeys()
          Whether foreign keys on existing tables should be manipulated.
 boolean getIgnoreErrors()
          If true, SQLExceptions thrown during schema manipulation will be printed but ignored.
 boolean getIndexes()
          Whether indexes on existing tables should be manipulated.
 boolean getOpenJPATables()
          Whether to act on special tables used by OpenJPA components for bookkeeping.
 boolean getPrimaryKeys()
          Whether primary keys on existing tables should be manipulated.
 SchemaGroup getSchemaGroup()
          Return the schema group the tool will act on.
 boolean getSequences()
          Whether sequences should be manipulated.
 java.io.Writer getWriter()
          The stream to write to for the creation of SQL scripts.
static void main(java.lang.String[] args)
          Usage: java org.apache.openjpa.jdbc.schema.SchemaTool [option]* [-action/-a <add | retain | drop | refresh | createDB | dropDB | build | reflect | import | export>] <.schema file or resource>* Where the following options are recognized.
 void record()
          Record the changes made to the DB in the current SchemaFactory.
 void run()
          Run the tool action.
static boolean run(JDBCConfiguration conf, java.lang.String[] args, org.apache.openjpa.lib.util.Options opts)
          Run the tool.
static boolean run(JDBCConfiguration conf, java.lang.String[] args, SchemaTool.Flags flags, java.lang.ClassLoader loader)
          Run the tool.
 void setDBSchemaGroup(SchemaGroup db)
          Set the database schema.
 void setDropSequences(boolean dropSeqs)
          If true, sequences that appear to be unused will be dropped.
 void setDropTables(boolean dropTables)
          If true, tables that appear to be unused will be dropped.
 void setForeignKeys(boolean fks)
          Whether foreign keys on existing tables should be manipulated.
 void setIgnoreErrors(boolean ignoreErrs)
          If true, SQLExceptions thrown during schema manipulation will be printed but ignored.
 void setIndexes(boolean indexes)
          Whether indexes on existing tables should be manipulated.
 void setOpenJPATables(boolean openjpaTables)
          Whether to act on special tables used by OpenJPA components for bookkeeping.
 void setPrimaryKeys(boolean pks)
          Whether primary keys on existing tables should be manipulated.
 void setSchemaGroup(SchemaGroup group)
          Set the schema group the tool will act on.
 void setSequences(boolean seqs)
          Whether sequences should be manipulated.
 void setWriter(java.io.Writer writer)
          The stream to write to for the creation of SQL scripts.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACTION_ADD

public static final java.lang.String ACTION_ADD
See Also:
Constant Field Values

ACTION_DROP

public static final java.lang.String ACTION_DROP
See Also:
Constant Field Values

ACTION_RETAIN

public static final java.lang.String ACTION_RETAIN
See Also:
Constant Field Values

ACTION_REFRESH

public static final java.lang.String ACTION_REFRESH
See Also:
Constant Field Values

ACTION_BUILD

public static final java.lang.String ACTION_BUILD
See Also:
Constant Field Values

ACTION_REFLECT

public static final java.lang.String ACTION_REFLECT
See Also:
Constant Field Values

ACTION_CREATEDB

public static final java.lang.String ACTION_CREATEDB
See Also:
Constant Field Values

ACTION_DROPDB

public static final java.lang.String ACTION_DROPDB
See Also:
Constant Field Values

ACTION_IMPORT

public static final java.lang.String ACTION_IMPORT
See Also:
Constant Field Values

ACTION_EXPORT

public static final java.lang.String ACTION_EXPORT
See Also:
Constant Field Values

ACTIONS

public static final java.lang.String[] ACTIONS
Constructor Detail

SchemaTool

public SchemaTool(JDBCConfiguration conf)
Default constructor. Tools constructed this way will not have an action, so the run() method will be a no-op.


SchemaTool

public SchemaTool(JDBCConfiguration conf,
                  java.lang.String action)
Construct a tool to perform the given action.

Method Detail

getAction

public java.lang.String getAction()
The action supplied on construction.


getIgnoreErrors

public boolean getIgnoreErrors()
If true, SQLExceptions thrown during schema manipulation will be printed but ignored.


setIgnoreErrors

public void setIgnoreErrors(boolean ignoreErrs)
If true, SQLExceptions thrown during schema manipulation will be printed but ignored.


getOpenJPATables

public boolean getOpenJPATables()
Whether to act on special tables used by OpenJPA components for bookkeeping.


setOpenJPATables

public void setOpenJPATables(boolean openjpaTables)
Whether to act on special tables used by OpenJPA components for bookkeeping.


getDropTables

public boolean getDropTables()
If true, tables that appear to be unused will be dropped. Defaults to true.


setDropTables

public void setDropTables(boolean dropTables)
If true, tables that appear to be unused will be dropped. Defaults to true.


getDropSequences

public boolean getDropSequences()
If true, sequences that appear to be unused will be dropped. Defaults to true.


setDropSequences

public void setDropSequences(boolean dropSeqs)
If true, sequences that appear to be unused will be dropped. Defaults to true.


getSequences

public boolean getSequences()
Whether sequences should be manipulated. Defaults to true.


setSequences

public void setSequences(boolean seqs)
Whether sequences should be manipulated. Defaults to true.


getIndexes

public boolean getIndexes()
Whether indexes on existing tables should be manipulated. Defaults to true.


setIndexes

public void setIndexes(boolean indexes)
Whether indexes on existing tables should be manipulated. Defaults to true.


getForeignKeys

public boolean getForeignKeys()
Whether foreign keys on existing tables should be manipulated. Defaults to true.


setForeignKeys

public void setForeignKeys(boolean fks)
Whether foreign keys on existing tables should be manipulated. Defaults to true.


getPrimaryKeys

public boolean getPrimaryKeys()
Whether primary keys on existing tables should be manipulated. Defaults to true.


setPrimaryKeys

public void setPrimaryKeys(boolean pks)
Whether primary keys on existing tables should be manipulated. Defaults to true.


getWriter

public java.io.Writer getWriter()
The stream to write to for the creation of SQL scripts. If the stream is non-null, all SQL will be written to this stream rather than executed against the database.


setWriter

public void setWriter(java.io.Writer writer)
The stream to write to for the creation of SQL scripts. If the stream is non-null, all SQL will be written to this stream rather than executed against the database.


getSchemaGroup

public SchemaGroup getSchemaGroup()
Return the schema group the tool will act on.


setSchemaGroup

public void setSchemaGroup(SchemaGroup group)
Set the schema group the tool will act on.


run

public void run()
         throws java.sql.SQLException
Run the tool action.

Throws:
java.sql.SQLException

record

public void record()
Record the changes made to the DB in the current SchemaFactory.


createTable

public boolean createTable(Table table)
                    throws java.sql.SQLException
Add the given table to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropTable

public boolean dropTable(Table table)
                  throws java.sql.SQLException
Drop the given table from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

createSequence

public boolean createSequence(Sequence seq)
                       throws java.sql.SQLException
Add the given sequence to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropSequence

public boolean dropSequence(Sequence seq)
                     throws java.sql.SQLException
Drop the given sequence from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

createIndex

public boolean createIndex(Index idx,
                           Table table)
                    throws java.sql.SQLException
Add the given index to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropIndex

public boolean dropIndex(Index idx)
                  throws java.sql.SQLException
Drop the given index from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

addColumn

public boolean addColumn(Column col)
                  throws java.sql.SQLException
Add the given column to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropColumn

public boolean dropColumn(Column col)
                   throws java.sql.SQLException
Drop the given column from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

addPrimaryKey

public boolean addPrimaryKey(PrimaryKey pk)
                      throws java.sql.SQLException
Add the given primary key to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropPrimaryKey

public boolean dropPrimaryKey(PrimaryKey pk)
                       throws java.sql.SQLException
Drop the given primary key from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

addForeignKey

public boolean addForeignKey(ForeignKey fk)
                      throws java.sql.SQLException
Add the given foreign key to the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

dropForeignKey

public boolean dropForeignKey(ForeignKey fk)
                       throws java.sql.SQLException
Drop the given foreign key from the database schema.

Returns:
true if the operation was successful, false otherwise
Throws:
java.sql.SQLException

getDBSchemaGroup

public SchemaGroup getDBSchemaGroup()
Return the database schema.


setDBSchemaGroup

public void setDBSchemaGroup(SchemaGroup db)
Set the database schema.


main

public static void main(java.lang.String[] args)
                 throws java.io.IOException,
                        java.sql.SQLException
Usage: java org.apache.openjpa.jdbc.schema.SchemaTool [option]* [-action/-a <add | retain | drop | refresh | createDB | dropDB | build | reflect | import | export>] <.schema file or resource>* Where the following options are recognized. The various actions are as follows. Examples:

Throws:
java.io.IOException
java.sql.SQLException

run

public static boolean run(JDBCConfiguration conf,
                          java.lang.String[] args,
                          org.apache.openjpa.lib.util.Options opts)
                   throws java.io.IOException,
                          java.sql.SQLException
Run the tool. Returns false if any invalid options were given.

Throws:
java.io.IOException
java.sql.SQLException
See Also:
main(java.lang.String[])

run

public static boolean run(JDBCConfiguration conf,
                          java.lang.String[] args,
                          SchemaTool.Flags flags,
                          java.lang.ClassLoader loader)
                   throws java.io.IOException,
                          java.sql.SQLException
Run the tool. Return false if invalid options were given.

Throws:
java.io.IOException
java.sql.SQLException


Copyright © 2006 Apache Software Foundation. All Rights Reserved.