What is the easiest way to run MigrationGenerator. I tried
java -cp cayenne-migrations-0.1.jar
org.apache.cayenne.migration.MigrationGenerator
which gave me the usage instructions.
Usage:
java org.apache.cayenne.migration.MigrationGenerator <cayenne-Project.xml>
<output-folder>
I added the required arguments (with cayenne-migrations-0.1.jar and
cayenne-project.xml in the same directory)
java -cp cayenne-migrations-0.1.jar
org.apache.cayenne.migration.MigrationGenerator cayenne-project.xml .
but that gave me this error.
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/cayenne/configuration/server/ServerRuntime
at
org.apache.cayenne.migration.MigrationGenerator.generateInitialMigration(MigrationGenerator.java:74)
at
org.apache.cayenne.migration.MigrationGenerator.main(MigrationGenerator.java:58)
Caused by: java.lang.ClassNotFoundException:
org.apache.cayenne.configuration.server.ServerRuntime
...
So I added cayenne-server to the current directory and classpath and ran
java -cp cayenne-migrations-0.1.jar:cayenne-server-3.2M1.jar
org.apache.cayenne.migration.MigrationGenerator cayenne-project.xml .
but got this error.
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/commons/logging/LogFactory
at
org.apache.cayenne.configuration.server.DataDomainProvider.<clinit>(DataDomainProvider.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at
org.apache.cayenne.di.spi.ConstructorInjectingProvider.get(ConstructorInjectingProvider.java:164)
at
org.apache.cayenne.di.spi.FieldInjectingProvider.get(FieldInjectingProvider.java:42)
at
org.apache.cayenne.di.spi.CustomProvidersProvider.get(CustomProvidersProvider.java:38)
at
org.apache.cayenne.di.spi.FieldInjectingProvider.get(FieldInjectingProvider.java:42)
at
org.apache.cayenne.di.spi.DefaultScopeProvider.get(DefaultScopeProvider.java:49)
at
org.apache.cayenne.di.spi.DefaultInjector.getInstance(DefaultInjector.java:103)
at
org.apache.cayenne.configuration.server.ServerRuntime.getDataDomain(ServerRuntime.java:92)
at
org.apache.cayenne.migration.MigrationGenerator.generateInitialMigration(MigrationGenerator.java:75)
at
org.apache.cayenne.migration.MigrationGenerator.main(MigrationGenerator.java:58)
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.logging.LogFactory
...
I could keep finding jars for the classpath but figure there is an easier way.
Thanks in advance
Tim
On 23 Mar 2014, at 0:42, John Huss <[email protected]> wrote:
> Also, you should know that you can generate your initial migration from
> your DataMap using MigrationGenerator. So take advantage of that.
>
>
> On Sat, Mar 22, 2014 at 9:40 AM, John Huss <[email protected]> wrote:
>
>> Ah, sorry, the pom wasn't really right due to my lack of maven knowledge.
>> If you update it should work now. Thanks!
>>
>>
>> On Sat, Mar 22, 2014 at 1:42 AM, D Tim Cummings <[email protected]>wrote:
>>
>>> I would like to try using cayenne-migrations to do database schema
>>> updates when my application starts but I am not sure how the cayenne
>>> sandbox works.
>>>
>>> I have checked out cayenne-migrations
>>>
>>> svn co
>>> http://svn.apache.org/repos/asf/cayenne/sandbox/cayenne-migrations/
>>>
>>> and then I tried to install it in my local maven repository
>>>
>>> cd cayenne-migrations/
>>> mvn clean install
>>>
>>> But I get an error message
>>>
>>> [ERROR] The project
>>> org.apache.cayenne:cayenne-migrations:3.2M1-SNAPSHOT
>>> (/Users/tim/temp/cayenne-migrations/pom.xml) has 1 error
>>> [ERROR] Non-resolvable parent POM: Could not find artifact
>>> org.apache.cayenne:cayenne-parent:pom:3.2M1-SNAPSHOT and
>>> 'parent.relativePath' points at wrong local POM @ line 4, column 10 ->
>>> [Help 2]
>>>
>>> In the pom.xml I notice
>>>
>>> <parent>
>>> <groupId>org.apache.cayenne</groupId>
>>> <artifactId>cayenne-parent</artifactId>
>>> <version>3.2M1-SNAPSHOT</version>
>>> </parent>
>>>
>>> I changed the version to 3.2M1 and the build seems to get further.
>>> However, now I get the following error
>>>
>>> [ERROR] Failed to execute goal on project cayenne-migrations: Could not
>>> resolve dependencies for project
>>> org.apache.cayenne:cayenne-migrations:jar:3.2M1: Failed to collect
>>> dependencies at
>>> org.apache.cayenne.unpublished:cayenne-jdk1.5-unpublished:jar:[3.1,): No
>>> versions available for
>>> org.apache.cayenne.unpublished:cayenne-jdk1.5-unpublished:jar:[3.1,) within
>>> specified range -> [Help 1]
>>>
>>> In the pom.xml I notice
>>>
>>> <dependency>
>>> <groupId>org.apache.cayenne.unpublished</groupId>
>>>
>>> <artifactId>cayenne-jdk1.5-unpublished</artifactId>
>>> <version>[3.1,)</version>
>>> </dependency>
>>>
>>>
>>> What should I do next?
>>>
>>> Tim
>>>
>>>
>>>
>>>
>>>
>>>
>>
signature.asc
Description: Message signed with OpenPGP using GPGMail
