You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Chuangyu <zh...@gmail.com> on 2015/11/16 11:10:00 UTC

mysql error when upgrade from 1.8 to 1.10

Hi,

I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
And made some change to fit new 1.10 specs.
When start system , Eclipse show errors on console box.
It seems each addon module occur one error.
Below is one of errors:

Unable to create schema
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near '"isissessionlogger"' at
line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
at com.mysql.jdbc.Util.getInstance(Util.java:383)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
at
org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
at
org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
at
org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
at
org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
at
org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
at
org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
at
org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
at
org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
at
org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
at
org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
at
org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
at
org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
at
org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
at org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
at
org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
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:497)
at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.Scopes$1$1.get(Scopes.java:65)
at
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at
com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
at
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
at
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
at
com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
at
com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
at
org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
at tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
at org.apache.wicket.Application.initApplication(Application.java:823)
at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
at
org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
at
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:387)
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at
org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
at org.apache.isis.WebServer.main(WebServer.java:25)


I check addon's dom module adn find

@javax.jdo.annotations.PersistenceCapable(
        identityType = IdentityType.DATASTORE,
        schema = "isissecurity",
        table = "ApplicationUser")

There is schema = "isissecurity" than version 1.8.0  and  table is
ApplicationUser not IsisSecurityApplicationUser.

So how to migration these tables? And how to avoid "schema" clause in MySQL?

Thanks,

James Chu.

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
OK, James, thanks for this.

So I guess you are saying it worked, but it's a bit annoying to have to
write out all the XML just to override one small detail.

To improve things a little, I've just hacked together [1] a little mixin
utility (mixins were introduced in 1.10.0) that allows the XML equivalent
version of any domain entity to be downloaded.  It's documented here [2]
and here [3], the code is here [4]. Assuming you are on 1.10.0, you should
just be able to copy-n-paste the mixin into your source code, and ensure
that the package that the mixin resides in listed in the app manifest.  If
on 1.9.0 or earlier, then rewrite as a contributed action on a regular
domain service.

HTH
Dan

[1] https://issues.apache.org/jira/browse/ISIS-1262
[2] http://isis.apache.org/guides/rg.html#_rg_classes_mixins_Persistable
[3]
http://isis.apache.org/guides/ug.html#_ug_more-advanced_overriding-jdo-annotations
[4]
https://github.com/apache/isis/blob/302da22ce3f5e549cda6c137c387cafd637ace55/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/jdosupport/Persistable_downloadJdoMetadata.java






On 25 November 2015 at 02:19, Chuangyu <zh...@gmail.com> wrote:

> Dan,
>
> I try it follow your way. but it seems need put all name query into
> package.jdo.
> otherwise it prompt errors as follow:
>
> javax.jdo.JDOUserException: Query "findByRoleAndRuleAndFeature" for class
> "class org.isisaddons.module.security.dom.permission.ApplicationPermission"
> was not found!
>
> If put one query into package.jdo, it will not show error of this query,
> but show others which were not in file.
>
> This is my package.jod file content:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo
> http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd" version="3.0">
>
>     <package name="org.isisaddons.module.security.dom.user">
>         <class name="ApplicationUser"
>                      schema="xxx"
>                      table="IsisSecurityApplicationUser">
>
>         </class>
>     </package>
>     <package name="org.isisaddons.module.security.dom.tenancy">
>         <class name="ApplicationTenancy"
>                      schema="xxx"
>                      table="IsisSecurityApplicationTenancy">
>         <query name="findByName" language="JDOQL">
>         SELECT FROM
> org.isisaddons.module.security.dom.tenancy.ApplicationTenancy WHERE name ==
> :name
>         </query>
>         </class>
>     </package>
>     <package name="org.isisaddons.module.security.dom.permission">
>         <class name="ApplicationPermission"
>                      schema="xxx"
>                      table="IsisSecurityApplicationPermission">
>         </class>
>     </package>
>     <package name="org.isisaddons.module.security.dom.role">
>         <class name="ApplicationRole"
>                      schema="xxx"
>                      table="IsisSecurityApplicationRole">
>         <query name="findByName" language="JDOQL">
>         SELECT FROM org.isisaddons.module.security.dom.role.ApplicationRole
> WHERE name == :name
>         </query>
>         </class>
>     </package>
> <package name="org.isisaddons.module.command.dom">
>         <class name="CommandJdo"
>                      schema="xxx"
>                      table="IsisCommand">
>         </class>
>     </package>
> <package name="org.isisaddons.module.sessionlogger.dom">
>         <class name="SessionLogEntry"
>                      schema="xxx"
>                      table="isisSessionLogEntry">
>         </class>
>     </package>
> </jdo>
>
> Thanks,
>
> James
>
>
> 2015-11-19 22:40 GMT+08:00 Dan Haywood <da...@haywood-associates.co.uk>:
>
> > Hi James,
> >
> > With DataNucleus the metadata can be specified either in XML or in
> > annotations.  (I haven't tried this out, but my understanding is that)...
> > if both are present, then the XML files take precedence over any
> > annotations.
> >
> >
> > So, in this case, we have the following source (abbreviated):
> >
> > package org.isisaddons.module.security.dom.user;
> > @javax.jdo.annotations.PersistenceCapable(
> >         identityType = IdentityType.DATASTORE,
> >         schema = "isissecurity",
> >         table = "ApplicationUser")
> > public class ApplicationUser ... { ... }
> >
> >
> > So, you should be able to create META-INF/package.jdo file:
> >
> >
> > <?xml version="1.0" encoding="UTF-8" ?>
> > <jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
> >     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo
> >         http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd" version="3.0">
> >
> >     <package name="org.isisaddons.module.security.dom.user">
> >         <class name="ApplicationUser"
> >                      schema="xxx"
> >                               <!-- whatever works here... -->
> >                      table="IsisSecurityApplicationUser">
> >         </class>
> >     </package>
> > </jdo>
> >
> >
> > There are lots of other ways of splitting out and providing this XML
> > metadata; see the docs below.
> >
> > Let us know how you get on; if it works I'll add to the hints/tips on our
> > website.
> >
> > Thx
> > Dan
> >
> > http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata.html
> >
> >
> http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata_xml.html#class
> >
> >
> http://www.datanucleus.org/products/accessplatform_4_1/jdo/class_mapping.html
> >
> >
> > On 19 November 2015 at 14:25, Chuangyu <zh...@gmail.com> wrote:
> >
> > > Thank you, Jeroen.
> > >
> > > If do not create schema manually, it can run so far, just ignore
> "create
> > > schema" errors.
> > >
> > > MySQL official document comment:
> > > CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2
> > >
> > > I don't want to create separate database for isis addons.
> > >
> > >
> > > James
> > >
> > > 2015-11-16 23:51 GMT+08:00 Jeroen van der Wal <je...@stromboli.it>:
> > >
> > > > We actively use Apache Isis with HSQLDB, PostgreSQL and MS SQL Server
> > and
> > > > they all support separate schemas within the same database. I would
> > like
> > > to
> > > > see Apache Isis run without issues in the scenario you have but I
> don't
> > > > want to lose the security that database schemas provide in preventing
> > > > similar named entities to clash.
> > > >
> > > > What options do you have? Can you
> > > >
> > > > On 16 November 2015 at 14:40, Chuangyu <zh...@gmail.com>
> wrote:
> > > >
> > > > > Hi Jeroen and Stephen,
> > > > > Thanks for your response.
> > > > > Jeroen ,your solution may not fit my scenario.
> > > > > I run 3 instance of this system but all 3 databases on one server
> > .(eg.
> > > > >  db1,db2,db3)
> > > > > Each instance has username/password separately.(eg, user1, user2,
> > > user3)
> > > > > If create schema on this server , all databases would share the
> > schema.
> > > > >
> > > > > If tables will create in the default schema, as Stephen said, it
> may
> > be
> > > > can
> > > > > work.
> > > > > But it is hard to maintenance.
> > > > >
> > > > >
> > > > > James.
> > > > >
> > > > >
> > > > > 2015-11-16 19:27 GMT+08:00 Stephen Cameron <
> > steve.cameron.62@gmail.com
> > > >:
> > > > >
> > > > > > Yes, that was a problem for me with MySQL and I used the same
> > > solution
> > > > to
> > > > > > manually create the schemas, but then the module tables seem to
> > have
> > > > been
> > > > > > created in the default schema anyway, so presently a mystery!
> > > > > >
> > > > > > On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <
> > > > > jeroen@stromboli.it>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi James,
> > > > > > >
> > > > > > > Starting with Isis 1.10.0 we've moved the tables of the modules
> > to
> > > > > their
> > > > > > > own database schema to avoid clashes with similar named
> entities
> > in
> > > > > your
> > > > > > > own domain or other modules. Here's [1] a sample of an MSSQL
> > script
> > > > > that
> > > > > > we
> > > > > > > used. You have create something similar for MySQL I guess.
> > > > > > >
> > > > > > > Looking at the error message I also suspect that the automatic
> > > > creation
> > > > > > of
> > > > > > > schemas does not work on MySQL, perhaps it requires delimiters
> > > around
> > > > > the
> > > > > > > schema name? Try creating the schemas manually as a workaround.
> > > > > > >
> > > > > > > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> > > > > > >
> > > > > > >
> > > > > > > On 16 November 2015 at 11:10, Chuangyu <zhu.chuangyu@gmail.com
> >
> > > > wrote:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I create a new 1.10 simple app and copy all code from 1.8 to
> > > 1.10.
> > > > > > > > And made some change to fit new 1.10 specs.
> > > > > > > > When start system , Eclipse show errors on console box.
> > > > > > > > It seems each addon module occur one error.
> > > > > > > > Below is one of errors:
> > > > > > > >
> > > > > > > > Unable to create schema
> > > > > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
> You
> > > have
> > > > > an
> > > > > > > > error in your SQL syntax; check the manual that corresponds
> to
> > > your
> > > > > > MySQL
> > > > > > > > server version for the right syntax to use near
> > > > '"isissessionlogger"'
> > > > > > at
> > > > > > > > line 1
> > > > > > > > at
> > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > > > > Method)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > > > > > > at
> > > java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > > > > > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > > > > > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > > > > > > at
> > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > > > > > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > > > > > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > > > > > > at
> > > com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > > > > > > at
> > > com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > > > > > > at
> com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > > > > > > at
> com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > > > > > > at
> > > > > > >
> > > > >
> > >
> org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > > > > > > 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:497)
> > > > > > > > at
> > > > > >
> > > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > > > > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > > > > > > at
> > > > > > >
> > > >
> tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > > > > > > at
> > > > > org.apache.wicket.Application.initApplication(Application.java:823)
> > > > > > > > at
> > > > > > >
> > > > >
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > > > > > > at
> > > > > > >
> > > > >
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > > > > > > at
> > > > > > >
> > > > >
> > >
> org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > > > > > > at
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > > > > > > at
> > > > > >
> > > org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > > > > > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > > > > > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > > > at
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > > > > > > at
> > > org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > > > > > > at
> > > org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > > > > > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > > > > > > >
> > > > > > > >
> > > > > > > > I check addon's dom module adn find
> > > > > > > >
> > > > > > > > @javax.jdo.annotations.PersistenceCapable(
> > > > > > > >         identityType = IdentityType.DATASTORE,
> > > > > > > >         schema = "isissecurity",
> > > > > > > >         table = "ApplicationUser")
> > > > > > > >
> > > > > > > > There is schema = "isissecurity" than version 1.8.0  and
> table
> > > is
> > > > > > > > ApplicationUser not IsisSecurityApplicationUser.
> > > > > > > >
> > > > > > > > So how to migration these tables? And how to avoid "schema"
> > > clause
> > > > in
> > > > > > > > MySQL?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > >
> > > > > > > > James Chu.
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Chuangyu <zh...@gmail.com>.
Dan,

I try it follow your way. but it seems need put all name query into
package.jdo.
otherwise it prompt errors as follow:

javax.jdo.JDOUserException: Query "findByRoleAndRuleAndFeature" for class
"class org.isisaddons.module.security.dom.permission.ApplicationPermission"
was not found!

If put one query into package.jdo, it will not show error of this query,
but show others which were not in file.

This is my package.jod file content:

<?xml version="1.0" encoding="UTF-8" ?>
<jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo
http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd" version="3.0">

    <package name="org.isisaddons.module.security.dom.user">
        <class name="ApplicationUser"
                     schema="xxx"
                     table="IsisSecurityApplicationUser">

        </class>
    </package>
    <package name="org.isisaddons.module.security.dom.tenancy">
        <class name="ApplicationTenancy"
                     schema="xxx"
                     table="IsisSecurityApplicationTenancy">
        <query name="findByName" language="JDOQL">
        SELECT FROM
org.isisaddons.module.security.dom.tenancy.ApplicationTenancy WHERE name ==
:name
        </query>
        </class>
    </package>
    <package name="org.isisaddons.module.security.dom.permission">
        <class name="ApplicationPermission"
                     schema="xxx"
                     table="IsisSecurityApplicationPermission">
        </class>
    </package>
    <package name="org.isisaddons.module.security.dom.role">
        <class name="ApplicationRole"
                     schema="xxx"
                     table="IsisSecurityApplicationRole">
        <query name="findByName" language="JDOQL">
        SELECT FROM org.isisaddons.module.security.dom.role.ApplicationRole
WHERE name == :name
        </query>
        </class>
    </package>
<package name="org.isisaddons.module.command.dom">
        <class name="CommandJdo"
                     schema="xxx"
                     table="IsisCommand">
        </class>
    </package>
<package name="org.isisaddons.module.sessionlogger.dom">
        <class name="SessionLogEntry"
                     schema="xxx"
                     table="isisSessionLogEntry">
        </class>
    </package>
</jdo>

Thanks,

James


2015-11-19 22:40 GMT+08:00 Dan Haywood <da...@haywood-associates.co.uk>:

> Hi James,
>
> With DataNucleus the metadata can be specified either in XML or in
> annotations.  (I haven't tried this out, but my understanding is that)...
> if both are present, then the XML files take precedence over any
> annotations.
>
>
> So, in this case, we have the following source (abbreviated):
>
> package org.isisaddons.module.security.dom.user;
> @javax.jdo.annotations.PersistenceCapable(
>         identityType = IdentityType.DATASTORE,
>         schema = "isissecurity",
>         table = "ApplicationUser")
> public class ApplicationUser ... { ... }
>
>
> So, you should be able to create META-INF/package.jdo file:
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo
>         http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd" version="3.0">
>
>     <package name="org.isisaddons.module.security.dom.user">
>         <class name="ApplicationUser"
>                      schema="xxx"
>                               <!-- whatever works here... -->
>                      table="IsisSecurityApplicationUser">
>         </class>
>     </package>
> </jdo>
>
>
> There are lots of other ways of splitting out and providing this XML
> metadata; see the docs below.
>
> Let us know how you get on; if it works I'll add to the hints/tips on our
> website.
>
> Thx
> Dan
>
> http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata.html
>
> http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata_xml.html#class
>
> http://www.datanucleus.org/products/accessplatform_4_1/jdo/class_mapping.html
>
>
> On 19 November 2015 at 14:25, Chuangyu <zh...@gmail.com> wrote:
>
> > Thank you, Jeroen.
> >
> > If do not create schema manually, it can run so far, just ignore "create
> > schema" errors.
> >
> > MySQL official document comment:
> > CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2
> >
> > I don't want to create separate database for isis addons.
> >
> >
> > James
> >
> > 2015-11-16 23:51 GMT+08:00 Jeroen van der Wal <je...@stromboli.it>:
> >
> > > We actively use Apache Isis with HSQLDB, PostgreSQL and MS SQL Server
> and
> > > they all support separate schemas within the same database. I would
> like
> > to
> > > see Apache Isis run without issues in the scenario you have but I don't
> > > want to lose the security that database schemas provide in preventing
> > > similar named entities to clash.
> > >
> > > What options do you have? Can you
> > >
> > > On 16 November 2015 at 14:40, Chuangyu <zh...@gmail.com> wrote:
> > >
> > > > Hi Jeroen and Stephen,
> > > > Thanks for your response.
> > > > Jeroen ,your solution may not fit my scenario.
> > > > I run 3 instance of this system but all 3 databases on one server
> .(eg.
> > > >  db1,db2,db3)
> > > > Each instance has username/password separately.(eg, user1, user2,
> > user3)
> > > > If create schema on this server , all databases would share the
> schema.
> > > >
> > > > If tables will create in the default schema, as Stephen said, it may
> be
> > > can
> > > > work.
> > > > But it is hard to maintenance.
> > > >
> > > >
> > > > James.
> > > >
> > > >
> > > > 2015-11-16 19:27 GMT+08:00 Stephen Cameron <
> steve.cameron.62@gmail.com
> > >:
> > > >
> > > > > Yes, that was a problem for me with MySQL and I used the same
> > solution
> > > to
> > > > > manually create the schemas, but then the module tables seem to
> have
> > > been
> > > > > created in the default schema anyway, so presently a mystery!
> > > > >
> > > > > On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <
> > > > jeroen@stromboli.it>
> > > > > wrote:
> > > > >
> > > > > > Hi James,
> > > > > >
> > > > > > Starting with Isis 1.10.0 we've moved the tables of the modules
> to
> > > > their
> > > > > > own database schema to avoid clashes with similar named entities
> in
> > > > your
> > > > > > own domain or other modules. Here's [1] a sample of an MSSQL
> script
> > > > that
> > > > > we
> > > > > > used. You have create something similar for MySQL I guess.
> > > > > >
> > > > > > Looking at the error message I also suspect that the automatic
> > > creation
> > > > > of
> > > > > > schemas does not work on MySQL, perhaps it requires delimiters
> > around
> > > > the
> > > > > > schema name? Try creating the schemas manually as a workaround.
> > > > > >
> > > > > > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> > > > > >
> > > > > >
> > > > > > On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com>
> > > wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I create a new 1.10 simple app and copy all code from 1.8 to
> > 1.10.
> > > > > > > And made some change to fit new 1.10 specs.
> > > > > > > When start system , Eclipse show errors on console box.
> > > > > > > It seems each addon module occur one error.
> > > > > > > Below is one of errors:
> > > > > > >
> > > > > > > Unable to create schema
> > > > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You
> > have
> > > > an
> > > > > > > error in your SQL syntax; check the manual that corresponds to
> > your
> > > > > MySQL
> > > > > > > server version for the right syntax to use near
> > > '"isissessionlogger"'
> > > > > at
> > > > > > > line 1
> > > > > > > at
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > > > Method)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > > > > > at
> > java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > > > > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > > > > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > > > > > at
> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > > > > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > > > > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > > > > > at
> > com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > > > > > at
> > com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > > > > > at
> > > > > >
> > > >
> > org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > > > > > 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:497)
> > > > > > > at
> > > > >
> > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > > > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > > > > > at
> > > > > >
> > > tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > > > > > at
> > > > org.apache.wicket.Application.initApplication(Application.java:823)
> > > > > > > at
> > > > > >
> > > >
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > > > > > at
> > > > > >
> > > >
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > > > > > at
> > > > > >
> > > >
> > org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > > > > > at
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > > > > > at
> > > > >
> > org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > > > > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > > > > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > > at
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > > > > > at
> > org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > > > > > at
> > org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > > > > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > > > > > >
> > > > > > >
> > > > > > > I check addon's dom module adn find
> > > > > > >
> > > > > > > @javax.jdo.annotations.PersistenceCapable(
> > > > > > >         identityType = IdentityType.DATASTORE,
> > > > > > >         schema = "isissecurity",
> > > > > > >         table = "ApplicationUser")
> > > > > > >
> > > > > > > There is schema = "isissecurity" than version 1.8.0  and  table
> > is
> > > > > > > ApplicationUser not IsisSecurityApplicationUser.
> > > > > > >
> > > > > > > So how to migration these tables? And how to avoid "schema"
> > clause
> > > in
> > > > > > > MySQL?
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > James Chu.
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
Hi James,

With DataNucleus the metadata can be specified either in XML or in
annotations.  (I haven't tried this out, but my understanding is that)...
if both are present, then the XML files take precedence over any
annotations.


So, in this case, we have the following source (abbreviated):

package org.isisaddons.module.security.dom.user;
@javax.jdo.annotations.PersistenceCapable(
        identityType = IdentityType.DATASTORE,
        schema = "isissecurity",
        table = "ApplicationUser")
public class ApplicationUser ... { ... }


So, you should be able to create META-INF/package.jdo file:


<?xml version="1.0" encoding="UTF-8" ?>
<jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo
        http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd" version="3.0">

    <package name="org.isisaddons.module.security.dom.user">
        <class name="ApplicationUser"
                     schema="xxx"
                              <!-- whatever works here... -->
                     table="IsisSecurityApplicationUser">
        </class>
    </package>
</jdo>


There are lots of other ways of splitting out and providing this XML
metadata; see the docs below.

Let us know how you get on; if it works I'll add to the hints/tips on our
website.

Thx
Dan

http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata.html
http://www.datanucleus.org/products/accessplatform_4_1/jdo/metadata_xml.html#class
http://www.datanucleus.org/products/accessplatform_4_1/jdo/class_mapping.html


On 19 November 2015 at 14:25, Chuangyu <zh...@gmail.com> wrote:

> Thank you, Jeroen.
>
> If do not create schema manually, it can run so far, just ignore "create
> schema" errors.
>
> MySQL official document comment:
> CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2
>
> I don't want to create separate database for isis addons.
>
>
> James
>
> 2015-11-16 23:51 GMT+08:00 Jeroen van der Wal <je...@stromboli.it>:
>
> > We actively use Apache Isis with HSQLDB, PostgreSQL and MS SQL Server and
> > they all support separate schemas within the same database. I would like
> to
> > see Apache Isis run without issues in the scenario you have but I don't
> > want to lose the security that database schemas provide in preventing
> > similar named entities to clash.
> >
> > What options do you have? Can you
> >
> > On 16 November 2015 at 14:40, Chuangyu <zh...@gmail.com> wrote:
> >
> > > Hi Jeroen and Stephen,
> > > Thanks for your response.
> > > Jeroen ,your solution may not fit my scenario.
> > > I run 3 instance of this system but all 3 databases on one server .(eg.
> > >  db1,db2,db3)
> > > Each instance has username/password separately.(eg, user1, user2,
> user3)
> > > If create schema on this server , all databases would share the schema.
> > >
> > > If tables will create in the default schema, as Stephen said, it may be
> > can
> > > work.
> > > But it is hard to maintenance.
> > >
> > >
> > > James.
> > >
> > >
> > > 2015-11-16 19:27 GMT+08:00 Stephen Cameron <steve.cameron.62@gmail.com
> >:
> > >
> > > > Yes, that was a problem for me with MySQL and I used the same
> solution
> > to
> > > > manually create the schemas, but then the module tables seem to have
> > been
> > > > created in the default schema anyway, so presently a mystery!
> > > >
> > > > On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <
> > > jeroen@stromboli.it>
> > > > wrote:
> > > >
> > > > > Hi James,
> > > > >
> > > > > Starting with Isis 1.10.0 we've moved the tables of the modules to
> > > their
> > > > > own database schema to avoid clashes with similar named entities in
> > > your
> > > > > own domain or other modules. Here's [1] a sample of an MSSQL script
> > > that
> > > > we
> > > > > used. You have create something similar for MySQL I guess.
> > > > >
> > > > > Looking at the error message I also suspect that the automatic
> > creation
> > > > of
> > > > > schemas does not work on MySQL, perhaps it requires delimiters
> around
> > > the
> > > > > schema name? Try creating the schemas manually as a workaround.
> > > > >
> > > > > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> > > > >
> > > > >
> > > > > On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com>
> > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I create a new 1.10 simple app and copy all code from 1.8 to
> 1.10.
> > > > > > And made some change to fit new 1.10 specs.
> > > > > > When start system , Eclipse show errors on console box.
> > > > > > It seems each addon module occur one error.
> > > > > > Below is one of errors:
> > > > > >
> > > > > > Unable to create schema
> > > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You
> have
> > > an
> > > > > > error in your SQL syntax; check the manual that corresponds to
> your
> > > > MySQL
> > > > > > server version for the right syntax to use near
> > '"isissessionlogger"'
> > > > at
> > > > > > line 1
> > > > > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > > Method)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > > > > at
> java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > > > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > > > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > > > > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > > > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > > > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > > > > at
> com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > > > > at
> com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > > > > at
> > > > >
> > >
> org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > > > > 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:497)
> > > > > > at
> > > >
> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > > > > at
> > > > >
> > tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > > > > at
> > > org.apache.wicket.Application.initApplication(Application.java:823)
> > > > > > at
> > > > >
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > > > > at
> > > > >
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > > > > at
> > > > >
> > >
> org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > > > > at
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > > > > at
> > > >
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > > > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > > > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > > at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > > > > at
> org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > > > > at
> org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > > > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > > > > >
> > > > > >
> > > > > > I check addon's dom module adn find
> > > > > >
> > > > > > @javax.jdo.annotations.PersistenceCapable(
> > > > > >         identityType = IdentityType.DATASTORE,
> > > > > >         schema = "isissecurity",
> > > > > >         table = "ApplicationUser")
> > > > > >
> > > > > > There is schema = "isissecurity" than version 1.8.0  and  table
> is
> > > > > > ApplicationUser not IsisSecurityApplicationUser.
> > > > > >
> > > > > > So how to migration these tables? And how to avoid "schema"
> clause
> > in
> > > > > > MySQL?
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > James Chu.
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Chuangyu <zh...@gmail.com>.
Thank you, Jeroen.

If do not create schema manually, it can run so far, just ignore "create
schema" errors.

MySQL official document comment:
CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2

I don't want to create separate database for isis addons.


James

2015-11-16 23:51 GMT+08:00 Jeroen van der Wal <je...@stromboli.it>:

> We actively use Apache Isis with HSQLDB, PostgreSQL and MS SQL Server and
> they all support separate schemas within the same database. I would like to
> see Apache Isis run without issues in the scenario you have but I don't
> want to lose the security that database schemas provide in preventing
> similar named entities to clash.
>
> What options do you have? Can you
>
> On 16 November 2015 at 14:40, Chuangyu <zh...@gmail.com> wrote:
>
> > Hi Jeroen and Stephen,
> > Thanks for your response.
> > Jeroen ,your solution may not fit my scenario.
> > I run 3 instance of this system but all 3 databases on one server .(eg.
> >  db1,db2,db3)
> > Each instance has username/password separately.(eg, user1, user2, user3)
> > If create schema on this server , all databases would share the schema.
> >
> > If tables will create in the default schema, as Stephen said, it may be
> can
> > work.
> > But it is hard to maintenance.
> >
> >
> > James.
> >
> >
> > 2015-11-16 19:27 GMT+08:00 Stephen Cameron <st...@gmail.com>:
> >
> > > Yes, that was a problem for me with MySQL and I used the same solution
> to
> > > manually create the schemas, but then the module tables seem to have
> been
> > > created in the default schema anyway, so presently a mystery!
> > >
> > > On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <
> > jeroen@stromboli.it>
> > > wrote:
> > >
> > > > Hi James,
> > > >
> > > > Starting with Isis 1.10.0 we've moved the tables of the modules to
> > their
> > > > own database schema to avoid clashes with similar named entities in
> > your
> > > > own domain or other modules. Here's [1] a sample of an MSSQL script
> > that
> > > we
> > > > used. You have create something similar for MySQL I guess.
> > > >
> > > > Looking at the error message I also suspect that the automatic
> creation
> > > of
> > > > schemas does not work on MySQL, perhaps it requires delimiters around
> > the
> > > > schema name? Try creating the schemas manually as a workaround.
> > > >
> > > > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> > > >
> > > >
> > > > On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com>
> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
> > > > > And made some change to fit new 1.10 specs.
> > > > > When start system , Eclipse show errors on console box.
> > > > > It seems each addon module occur one error.
> > > > > Below is one of errors:
> > > > >
> > > > > Unable to create schema
> > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
> > an
> > > > > error in your SQL syntax; check the manual that corresponds to your
> > > MySQL
> > > > > server version for the right syntax to use near
> '"isissessionlogger"'
> > > at
> > > > > line 1
> > > > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > > Method)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > > > at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > > > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > > > at
> > > >
> > org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > > > 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:497)
> > > > > at
> > > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > > > at
> > > >
> tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > > > at
> > org.apache.wicket.Application.initApplication(Application.java:823)
> > > > > at
> > > >
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > > > at
> > > >
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > > > at
> > > >
> > org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > > > at
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > > > at
> > > org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > > at
> > > > >
> > > > >
> > > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > > > at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > > > at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > > > >
> > > > >
> > > > > I check addon's dom module adn find
> > > > >
> > > > > @javax.jdo.annotations.PersistenceCapable(
> > > > >         identityType = IdentityType.DATASTORE,
> > > > >         schema = "isissecurity",
> > > > >         table = "ApplicationUser")
> > > > >
> > > > > There is schema = "isissecurity" than version 1.8.0  and  table is
> > > > > ApplicationUser not IsisSecurityApplicationUser.
> > > > >
> > > > > So how to migration these tables? And how to avoid "schema" clause
> in
> > > > > MySQL?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > James Chu.
> > > > >
> > > >
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Jeroen van der Wal <je...@stromboli.it>.
We actively use Apache Isis with HSQLDB, PostgreSQL and MS SQL Server and
they all support separate schemas within the same database. I would like to
see Apache Isis run without issues in the scenario you have but I don't
want to lose the security that database schemas provide in preventing
similar named entities to clash.

What options do you have? Can you

On 16 November 2015 at 14:40, Chuangyu <zh...@gmail.com> wrote:

> Hi Jeroen and Stephen,
> Thanks for your response.
> Jeroen ,your solution may not fit my scenario.
> I run 3 instance of this system but all 3 databases on one server .(eg.
>  db1,db2,db3)
> Each instance has username/password separately.(eg, user1, user2, user3)
> If create schema on this server , all databases would share the schema.
>
> If tables will create in the default schema, as Stephen said, it may be can
> work.
> But it is hard to maintenance.
>
>
> James.
>
>
> 2015-11-16 19:27 GMT+08:00 Stephen Cameron <st...@gmail.com>:
>
> > Yes, that was a problem for me with MySQL and I used the same solution to
> > manually create the schemas, but then the module tables seem to have been
> > created in the default schema anyway, so presently a mystery!
> >
> > On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <
> jeroen@stromboli.it>
> > wrote:
> >
> > > Hi James,
> > >
> > > Starting with Isis 1.10.0 we've moved the tables of the modules to
> their
> > > own database schema to avoid clashes with similar named entities in
> your
> > > own domain or other modules. Here's [1] a sample of an MSSQL script
> that
> > we
> > > used. You have create something similar for MySQL I guess.
> > >
> > > Looking at the error message I also suspect that the automatic creation
> > of
> > > schemas does not work on MySQL, perhaps it requires delimiters around
> the
> > > schema name? Try creating the schemas manually as a workaround.
> > >
> > > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> > >
> > >
> > > On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com> wrote:
> > >
> > > > Hi,
> > > >
> > > > I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
> > > > And made some change to fit new 1.10 specs.
> > > > When start system , Eclipse show errors on console box.
> > > > It seems each addon module occur one error.
> > > > Below is one of errors:
> > > >
> > > > Unable to create schema
> > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have
> an
> > > > error in your SQL syntax; check the manual that corresponds to your
> > MySQL
> > > > server version for the right syntax to use near '"isissessionlogger"'
> > at
> > > > line 1
> > > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> > Method)
> > > > at
> > > >
> > > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > > at
> > > >
> > > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > > at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > > at
> > > >
> > > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > > at
> > >
> org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > > 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:497)
> > > > at
> > com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > > at
> > > >
> > > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > > at
> > > tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > > at
> org.apache.wicket.Application.initApplication(Application.java:823)
> > > > at
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > > at
> > >
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > > at
> > >
> org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > > at
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > > at
> > org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > > at
> > > >
> > > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > > at
> > > >
> > > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > > at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > > at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > > >
> > > >
> > > > I check addon's dom module adn find
> > > >
> > > > @javax.jdo.annotations.PersistenceCapable(
> > > >         identityType = IdentityType.DATASTORE,
> > > >         schema = "isissecurity",
> > > >         table = "ApplicationUser")
> > > >
> > > > There is schema = "isissecurity" than version 1.8.0  and  table is
> > > > ApplicationUser not IsisSecurityApplicationUser.
> > > >
> > > > So how to migration these tables? And how to avoid "schema" clause in
> > > > MySQL?
> > > >
> > > > Thanks,
> > > >
> > > > James Chu.
> > > >
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Chuangyu <zh...@gmail.com>.
Hi Jeroen and Stephen,
Thanks for your response.
Jeroen ,your solution may not fit my scenario.
I run 3 instance of this system but all 3 databases on one server .(eg.
 db1,db2,db3)
Each instance has username/password separately.(eg, user1, user2, user3)
If create schema on this server , all databases would share the schema.

If tables will create in the default schema, as Stephen said, it may be can
work.
But it is hard to maintenance.


James.


2015-11-16 19:27 GMT+08:00 Stephen Cameron <st...@gmail.com>:

> Yes, that was a problem for me with MySQL and I used the same solution to
> manually create the schemas, but then the module tables seem to have been
> created in the default schema anyway, so presently a mystery!
>
> On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <je...@stromboli.it>
> wrote:
>
> > Hi James,
> >
> > Starting with Isis 1.10.0 we've moved the tables of the modules to their
> > own database schema to avoid clashes with similar named entities in your
> > own domain or other modules. Here's [1] a sample of an MSSQL script that
> we
> > used. You have create something similar for MySQL I guess.
> >
> > Looking at the error message I also suspect that the automatic creation
> of
> > schemas does not work on MySQL, perhaps it requires delimiters around the
> > schema name? Try creating the schemas manually as a workaround.
> >
> > [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
> >
> >
> > On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
> > > And made some change to fit new 1.10 specs.
> > > When start system , Eclipse show errors on console box.
> > > It seems each addon module occur one error.
> > > Below is one of errors:
> > >
> > > Unable to create schema
> > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
> > > error in your SQL syntax; check the manual that corresponds to your
> MySQL
> > > server version for the right syntax to use near '"isissessionlogger"'
> at
> > > line 1
> > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> > > at
> > >
> > >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > > at
> > >
> > >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > > at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > > at
> > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > > at
> > >
> > >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > > at
> > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > > at
> > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > > at
> > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > > at
> > >
> > >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > > at
> > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > > at
> > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > > at
> > >
> > >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > > at
> > >
> > >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > > at
> > org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > > at
> > >
> > >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > > 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:497)
> > > at
> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > > at
> > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > at
> > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > > at
> > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > > at
> > >
> > >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > > at
> > >
> > >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > > at
> > >
> > >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > > at
> > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > > at
> > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > > at
> > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > > at
> > >
> > >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > > at
> > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > > at
> > >
> > >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > > at
> > >
> > >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > > at
> > >
> > >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > > at
> > tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > > at org.apache.wicket.Application.initApplication(Application.java:823)
> > > at
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > > at
> > org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > > at
> > org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > > at
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > > at
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > > at
> > >
> > >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > > at
> > >
> > >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > > at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > > at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > > at org.apache.isis.WebServer.main(WebServer.java:25)
> > >
> > >
> > > I check addon's dom module adn find
> > >
> > > @javax.jdo.annotations.PersistenceCapable(
> > >         identityType = IdentityType.DATASTORE,
> > >         schema = "isissecurity",
> > >         table = "ApplicationUser")
> > >
> > > There is schema = "isissecurity" than version 1.8.0  and  table is
> > > ApplicationUser not IsisSecurityApplicationUser.
> > >
> > > So how to migration these tables? And how to avoid "schema" clause in
> > > MySQL?
> > >
> > > Thanks,
> > >
> > > James Chu.
> > >
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Stephen Cameron <st...@gmail.com>.
Yes, that was a problem for me with MySQL and I used the same solution to
manually create the schemas, but then the module tables seem to have been
created in the default schema anyway, so presently a mystery!

On Mon, Nov 16, 2015 at 10:22 PM, Jeroen van der Wal <je...@stromboli.it>
wrote:

> Hi James,
>
> Starting with Isis 1.10.0 we've moved the tables of the modules to their
> own database schema to avoid clashes with similar named entities in your
> own domain or other modules. Here's [1] a sample of an MSSQL script that we
> used. You have create something similar for MySQL I guess.
>
> Looking at the error message I also suspect that the automatic creation of
> schemas does not work on MySQL, perhaps it requires delimiters around the
> schema name? Try creating the schemas manually as a workaround.
>
> [1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0
>
>
> On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com> wrote:
>
> > Hi,
> >
> > I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
> > And made some change to fit new 1.10 specs.
> > When start system , Eclipse show errors on console box.
> > It seems each addon module occur one error.
> > Below is one of errors:
> >
> > Unable to create schema
> > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
> > error in your SQL syntax; check the manual that corresponds to your MySQL
> > server version for the right syntax to use near '"isissessionlogger"' at
> > line 1
> > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> > at
> >
> >
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> > at
> >
> >
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> > at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> > at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> > at com.mysql.jdbc.Util.getInstance(Util.java:383)
> > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> > at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> > at
> >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> > at
> >
> >
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> > at
> >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> > at
> >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> > at
> >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> > at
> >
> >
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> > at
> >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> > at
> >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> > at
> >
> >
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> > at
> >
> >
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> > at
> >
> >
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> > at
> org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> > at
> >
> >
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> > 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:497)
> > at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> > at
> >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > at
> >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> > at
> >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> > at
> >
> >
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> > at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> > at
> >
> >
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> > at
> >
> >
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> > at
> >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> > at
> >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> > at
> >
> >
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> > at
> >
> >
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> > at
> >
> >
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> > at
> >
> >
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> > at
> >
> >
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> > at
> >
> >
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> > at
> tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> > at org.apache.wicket.Application.initApplication(Application.java:823)
> > at
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> > at
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> > at
> org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> > at
> >
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> > at
> >
> >
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> > at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> > at
> >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > at
> >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> > at org.eclipse.jetty.server.Server.start(Server.java:387)
> > at
> >
> >
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> > at
> >
> >
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> > at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> > at
> >
> >
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> > at
> >
> >
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> > at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> > at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> > at org.apache.isis.WebServer.main(WebServer.java:25)
> >
> >
> > I check addon's dom module adn find
> >
> > @javax.jdo.annotations.PersistenceCapable(
> >         identityType = IdentityType.DATASTORE,
> >         schema = "isissecurity",
> >         table = "ApplicationUser")
> >
> > There is schema = "isissecurity" than version 1.8.0  and  table is
> > ApplicationUser not IsisSecurityApplicationUser.
> >
> > So how to migration these tables? And how to avoid "schema" clause in
> > MySQL?
> >
> > Thanks,
> >
> > James Chu.
> >
>

Re: mysql error when upgrade from 1.8 to 1.10

Posted by Jeroen van der Wal <je...@stromboli.it>.
Hi James,

Starting with Isis 1.10.0 we've moved the tables of the modules to their
own database schema to avoid clashes with similar named entities in your
own domain or other modules. Here's [1] a sample of an MSSQL script that we
used. You have create something similar for MySQL I guess.

Looking at the error message I also suspect that the automatic creation of
schemas does not work on MySQL, perhaps it requires delimiters around the
schema name? Try creating the schemas manually as a workaround.

[1] https://gist.github.com/jcvanderwal/c30e2d8c4d11aec5b0c0


On 16 November 2015 at 11:10, Chuangyu <zh...@gmail.com> wrote:

> Hi,
>
> I create a new 1.10 simple app and copy all code from 1.8 to 1.10.
> And made some change to fit new 1.10 specs.
> When start system , Eclipse show errors on console box.
> It seems each addon module occur one error.
> Below is one of errors:
>
> Unable to create schema
> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an
> error in your SQL syntax; check the manual that corresponds to your MySQL
> server version for the right syntax to use near '"isissessionlogger"' at
> line 1
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
>
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
>
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
> at com.mysql.jdbc.Util.getInstance(Util.java:383)
> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2834)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2783)
> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:908)
> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:788)
> at
>
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.exec(CreateSchemaObjectFromClassMetadata.java:117)
> at
>
> org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata.loaded(CreateSchemaObjectFromClassMetadata.java:76)
> at
>
> org.datanucleus.metadata.MetaDataManagerImpl.processListenerLoadingCall(MetaDataManagerImpl.java:1705)
> at
>
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1681)
> at
>
> org.datanucleus.metadata.MetaDataManagerImpl.getMetaDataForClass(MetaDataManagerImpl.java:1580)
> at
>
> org.datanucleus.metadata.MetaDataManagerImpl.getReferencedClasses(MetaDataManagerImpl.java:3009)
> at
>
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.addClassTables(RDBMSStoreManager.java:2981)
> at
>
> org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.run(RDBMSStoreManager.java:2872)
> at
>
> org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:119)
> at
>
> org.datanucleus.store.rdbms.RDBMSStoreManager.createSchemaForClasses(RDBMSStoreManager.java:3842)
> at
>
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createSchema(DataNucleusApplicationComponents.java:191)
> at
>
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.createPmfAndSchemaIfRequired(DataNucleusApplicationComponents.java:150)
> at
>
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.initialize(DataNucleusApplicationComponents.java:105)
> at
>
> org.apache.isis.core.runtime.system.persistence.DataNucleusApplicationComponents.<init>(DataNucleusApplicationComponents.java:98)
> at
>
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.createDataNucleusApplicationComponents(PersistenceSessionFactory.java:92)
> at
>
> org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory.init(PersistenceSessionFactory.java:73)
> at org.apache.isis.core.runtime.system.IsisSystem.init(IsisSystem.java:203)
> at
>
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:140)
> 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:497)
> at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104)
> at
>
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> at
>
> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
> at
>
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
> at
>
> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
> at com.google.inject.Scopes$1$1.get(Scopes.java:65)
> at
>
> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> at
>
> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
> at
>
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
> at
>
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75)
> at
>
> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
> at
>
> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
> at
>
> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73)
> at
>
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60)
> at
>
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944)
> at
>
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:265)
> at tm.webapp.TruckMonitorApplication.init(TruckMonitorApplication.java:75)
> at org.apache.wicket.Application.initApplication(Application.java:823)
> at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427)
> at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351)
> at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
> at
>
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
> at
>
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
> at
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
> at
>
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
> at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
> at org.eclipse.jetty.server.Server.start(Server.java:387)
> at
>
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
> at
>
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
> at org.eclipse.jetty.server.Server.doStart(Server.java:354)
> at
>
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
> at
>
> org.apache.isis.core.webserver.WebServerBootstrapper.bootstrap(WebServerBootstrapper.java:91)
> at org.apache.isis.core.webserver.WebServer.run(WebServer.java:107)
> at org.apache.isis.core.webserver.WebServer.main(WebServer.java:71)
> at org.apache.isis.WebServer.main(WebServer.java:25)
>
>
> I check addon's dom module adn find
>
> @javax.jdo.annotations.PersistenceCapable(
>         identityType = IdentityType.DATASTORE,
>         schema = "isissecurity",
>         table = "ApplicationUser")
>
> There is schema = "isissecurity" than version 1.8.0  and  table is
> ApplicationUser not IsisSecurityApplicationUser.
>
> So how to migration these tables? And how to avoid "schema" clause in
> MySQL?
>
> Thanks,
>
> James Chu.
>