Thanks for the tips Tom. Unfortunately, I'm still getting an empty
schema.xml file when using the Ant task. Here's my Ant task now:
<target name="db.clean" description="Reset the configured database to
base install.">
<taskdef name="db_to_ddl" classpath="../ddlutils/target/classes"
classname="org.apache.ddlutils.task.DatabaseToDdlTask">
<classpath>
<path refid="build.app.classpath" />
<pathelement location="../ddlutils/target/classes"
/>
<path>
<fileset dir="../ddlutils/lib">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</path>
</classpath>
</taskdef>
<db_to_ddl schema="DV_MASTER" databaseType="Oracle9">
<database
url="jdbc:oracle:thin:@//INTDB002:1521/INTDEV01"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="DV_MASTER" password="password" />
<writeSchemaToFile outputFile="schema.xml" />
</db_to_ddl>
</target>
I also wrote a short JUnit test that does a similar thing, but this one
works. I get the DDL written to the file in schema.xml. I can't figure
out what the difference is:
public Database readDatabase(DataSource dataSource)
throws DynaSqlException, SQLException {
Platform platform = PlatformFactory
.createNewPlatformInstance(dataSource);
return
platform.readModelFromDatabase(dataSource.getConnection(), null,
null, "DV_MASTER", null);
}
public void testWriteDb() throws Exception {
OracleDataSource dataSource = new OracleDataSource();
dataSource.setURL("jdbc:oracle:thin:@//INTDB002:1521/INTDEV01");
dataSource.setUser("DV_MASTER");
dataSource.setPassword("password");
Database db = readDatabase(dataSource);
new DatabaseIO().write(db, new FileWriter(new
File("schema.xml")));
}
DDLUtils integration with Ant is what made me give it a try. I'd really
like to know what I'm doing wrong with the Ant task...
Thanks,
Guy
Thomas Dudziak wrote:
On 2/4/06, Guy Davis <[EMAIL PROTECTED]> wrote:
I'm trying to generate a DDL XML file from our current database. Here's
my target from build.xml. The target runs with no errors but the output
file is empty. Any ideas?
At first glance, this seems to a problem with rights. You should check
that you have the necessary rights to *see* the tables in the schema
DV_MASTER.
With Oracle, it is also helpful to explicitly specify the platform to
use because there are three different ones (8, 9, 10 with 8 the
default) that differ. I.e. for an Oracle9 database:
<db_to_ddl schema="DV_MASTER" databaseType="Oracle9">
It might also be helpful to run Ant with the -v or the -debug switches
in order to get more info about the Ant run.
Tom