I recommend that you post this question to the DdlUtils user list if you
want to use DdlUtils for this task. I don't think that you will find a
lot of DdlUtils expertise on the Derby lists. But maybe someone will
speak up and happily contradict me.
Another approach would be to use the foreignViews optional tool as
documented here:
http://db.apache.org/derby/docs/10.14/tools/rtoolsoptforeignviews.html.
An advantage to this approach is that you don't have to indirect through
a dumped data file on disk. The foreignViews will siphon the data out of
MariaDB and drop it directly into the target Derby tables.
Hope this helps,
-Rick
On 5/2/18 1:31 PM, afr0ck wrote:
Hello,
So i had to convert my production DB from MariaDB to Derby. I went
through the steps at
http://db.apache.org/derby/integrate/db_ddlutils.html but i had a
problem when i run the export Ant task.
The following text includes the environment variables i set & the
failure message from Ant alongside with the build.xml file. The
database URL is correct & works fine in the JVM.
*
The environment variables :
*
|afr0ck@afr0ck:~/Desktop/ESTORE/ddlutils$ echo $CLASSPATH
/home/afr0ck/Desktop/ESTORE/sqlite-jdbc-3.21.0.jar:/home/afr0ck/Desktop/ESTORE/db-derby-10.14.1.0-lib/lib/derby.jar:/home/afr0ck/Desktop/ESTORE/db-derby-10.14.1.0-lib/lib/derbytools.jar:/home/afr0ck/Desktop/ESTORE/mariadb-java-client-2.2.1.jar
|
*
build.xml :
*
|<?xml version="1.0" encoding="UTF-8"?>
<project name="MigrateToDerby" basedir=".">
<path id="classpath">
<fileset dir="./lib">
<include name="**/*.jar" />
</fileset>
</path>
<target name="export-source-db" description="Dumps db structure and data">
<taskdef name="databaseToDdl"
classname="org.apache.ddlutils.task.DatabaseToDdlTask">
<classpath refid="classpath" />
</taskdef>
<databaseToDdl modelName="MigrateTest">
<database url="jdbc:mariadb://localhost:3306/estore"
driverClassName="org.mariadb.jdbc.Driver" username="root"
password="afr0ck" />
<writeSchemaToFile outputFile="db-schema.xml" />
<writeDataToFile outputFile="data.xml" />
</databaseToDdl>
</target>
</project>
|
*
Ant task execution :
*
|afr0ck@afr0ck:~/Desktop/ESTORE/ddlutils$ ant -v export-source-db
Apache Ant(TM) version 1.10.3 compiled on March 24 2018
Trying the default build file: build.xml
Buildfile: /home/afr0ck/Desktop/ESTORE/ddlutils/build.xml
Detected Java version: 1.8 in: /home/afr0ck/jdk1.8.0_144/jre
Detected OS: Linux
parsing buildfile /home/afr0ck/Desktop/ESTORE/ddlutils/build.xml with
URI = file:/home/afr0ck/Desktop/ESTORE/ddlutils/build.xml
Project base dir set to: /home/afr0ck/Desktop/ESTORE/ddlutils
parsing buildfile
jar:file:/usr/local/ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml
with URI =
jar:file:/usr/local/ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml
from a zip file
Build sequence for target(s) `export-source-db' is [export-source-db]
Complete build sequence is [export-source-db, ]
export-source-db:
BUILD FAILED /home/afr0ck/Desktop/ESTORE/ddlutils/build.xml:12: Could
not read the schema from the specified database: Database type null is
not supported.
at
org.apache.ddlutils.task.PlatformConfiguration.getPlatform(PlatformConfiguration.java:226)
at
org.apache.ddlutils.task.DatabaseTaskBase.getPlatform(DatabaseTaskBase.java:288)
at
org.apache.ddlutils.task.DatabaseToDdlTask.readModel(DatabaseToDdlTask.java:265)
at
org.apache.ddlutils.task.DatabaseTaskBase.execute(DatabaseTaskBase.java:381)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:448)
at org.apache.tools.ant.Target.performTasks(Target.java:469)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1370)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
at org.apache.tools.ant.Main.runBuild(Main.java:849)
at org.apache.tools.ant.Main.startAnt(Main.java:228)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:283)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
Caused by: java.lang.NullPointerException
at
org.apache.ddlutils.PlatformFactory.createNewPlatformInstance(PlatformFactory.java:83)
at
org.apache.ddlutils.task.PlatformConfiguration.getPlatform(PlatformConfiguration.java:222)
... 20 more
Total time: 0 seconds |
What could be wrong with the above configuration ?
------------------------------------------------------------------------
Sent from the Apache Derby Users mailing list archive
<http://apache-database.10148.n7.nabble.com/Apache-Derby-Users-f95095.html>
at Nabble.com.