Issue upgrading from 1.9.3.1 to 2.5.3

29 views
Skip to first unread message

Ben Ferguson

unread,
Mar 7, 2014, 11:50:58 AM3/7/14
to dot...@googlegroups.com
Greetings!

I am running into an issue upgrading dotcms to the latest version. I am following the instructions here. I have put our data into a new mysql database and have pointed my dotcms instance to the new db using the root.xml file. It seemed to be working aside from 4 exceptions that I need help with.

Questions:
1. It was mentioned here that I could upgrade directly to 2.5.2. I'm going to 2.5.3, so should I go to 2.5.2 first? Can I go directly to 2.5.3 or is there another version I need to get to first?

2. Are these exceptions bugs in the upgrade scripts? If so, is there a fix?

3. What steps can I take to get around these exceptions?

My environment:
- Win7 64 bit
- Java 1.7.0_11
- I'm running dotcms 2.5.3 in eclipse (Kepler)
- Mysql 5.6.15
- We recently acquired an enterprise standard license

Exceptions:
1. This first one deals with a foreign key constraint. It looks like both the old and new version of dotcms have the same constraint. I have about 4 of these so far:
java.sql.SQLException: Cannot change column 'inode': used in a foreign key constraint 'fk302bcfe5fb51eb' of table 'dotcms19.category'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2738)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:899)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:737)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at com.dotmarketing.common.db.DotConnect.executeStatement(DotConnect.java:222)
at com.dotmarketing.startup.AbstractJDBCStartupTask.executeUpgrade(AbstractJDBCStartupTask.java:190)
at com.dotmarketing.startup.StartupTasksExecutor.executeUpgrades(StartupTasksExecutor.java:260)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:117)

2. This one is interesting because it's looking for a class that existed in 1.9.3.1, but not in 2.5.3:
org.quartz.JobPersistenceException: Couldn't remove trigger: com.dotcms.enterprise.priv.DashboardJobImpl [See nested exception: java.lang.ClassNotFoundException: com.dotcms.enterprise.priv.DashboardJobImpl]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.removeTrigger(JobStoreSupport.java:1490)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$8.execute(JobStoreSupport.java:1462)
at org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:242)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.removeTrigger(JobStoreSupport.java:1458)
at org.quartz.core.QuartzScheduler.unscheduleJob(QuartzScheduler.java:965)
...
Caused by: java.lang.ClassNotFoundException: com.dotcms.enterprise.priv.DashboardJobImpl
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at org.quartz.simpl.InitThreadContextClassLoadHelper.loadClass(InitThreadContextClassLoadHelper.java:72)
at org.quartz.simpl.CascadingClassLoadHelper.loadClass(CascadingClassLoadHelper.java:116)
at com.dotmarketing.quartz.MySQLJDBCDelegate.selectJobForTrigger(MySQLJDBCDelegate.java:1954)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.removeTrigger(JobStoreSupport.java:1474)
... 34 more

3. It looks like you guys added an identifier column to the contentlet table. It looks like the code is struggling with that. I see about 8-10 of these:
2014-03-07 16:11:43,312 ERROR com.dotmarketing.portlets.contentlet.business.HostAPIImpl - Unknown column 'contentlet.identifier' in 'field list'
com.dotmarketing.exception.DotDataException: Unknown column 'contentlet.identifier' in 'field list'
at com.dotmarketing.common.db.DotConnect.loadResult(DotConnect.java:234)
at com.dotmarketing.common.db.DotConnect.loadObjectResults(DotConnect.java:864)
at com.dotmarketing.business.query.QueryUtil.DBSearch(QueryUtil.java:186)
at com.dotcms.content.elasticsearch.business.ESContentletAPIImpl.DBSearch(ESContentletAPIImpl.java:3710)
at com.dotmarketing.portlets.contentlet.business.ContentletAPIInterceptor.DBSearch(ContentletAPIInterceptor.java:1851)
at com.dotmarketing.business.query.GenericQueryFactory$Query.execute(GenericQueryFactory.java:297)
at com.dotmarketing.business.query.GenericQueryFactory.execute(GenericQueryFactory.java:119)
at com.dotmarketing.portlets.contentlet.business.HostAPIImpl.findSystemHost(HostAPIImpl.java:423)
at com.dotmarketing.servlets.InitServlet.init(InitServlet.java:229)


4. The rest of the exceptions I see (about 40 or so) are these 2 that are similar. It looks like you guys added a couple tables, but the code is struggling because they haven't been added yet or something.
4a:
2014-03-07 16:11:43,320 WARN  com.dotmarketing.db.HibernateUtil - ---------- DotHibernate: error on list ---------------
net.sf.hibernate.exception.SQLGrammarException: Could not execute query
at net.sf.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:69)
at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
at com.dotmarketing.db.HibernateUtil.list(HibernateUtil.java:277)
at com.dotcms.content.elasticsearch.business.ESContentFactoryImpl.findByStructure(ESContentFactoryImpl.java:850)
at com.dotcms.content.elasticsearch.business.ESContentletAPIImpl.findByStructure(ESContentletAPIImpl.java:200)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dotcms19.contentlet_version_info' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)

4b:
2014-03-07 16:12:00,368 ERROR com.dotcms.publisher.business.PublisherQueueJob - Unable to get list of elements with error:Table 'dotcms19.publishing_queue_audit' doesn't exist
com.dotcms.publisher.business.DotPublisherException: Unable to get list of elements with error:Table 'dotcms19.publishing_queue_audit' doesn't exist
at com.dotcms.publisher.business.PublishAuditAPIImpl.getPendingPublishAuditStatus(PublishAuditAPIImpl.java:311)
at com.dotcms.publisher.business.PublisherQueueJob.updateAuditStatus(PublisherQueueJob.java:178)
at com.dotcms.publisher.business.PublisherQueueJob.execute(PublisherQueueJob.java:63)
at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: com.dotmarketing.exception.DotDataException: Table 'dotcms19.publishing_queue_audit' doesn't exist
at com.dotmarketing.common.db.DotConnect.loadResult(DotConnect.java:234)
at com.dotmarketing.common.db.DotConnect.loadObjectResults(DotConnect.java:864)
at com.dotcms.publisher.business.PublishAuditAPIImpl.getPendingPublishAuditStatus(PublishAuditAPIImpl.java:308)
... 4 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dotcms19.publishing_queue_audit' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at com.dotmarketing.common.db.DotConnect.executeQuery(DotConnect.java:574)
at com.dotmarketing.common.db.DotConnect.executeQuery(DotConnect.java:486)
at com.dotmarketing.common.db.DotConnect.loadResult(DotConnect.java:232)
... 6 more


Thank you for your help!
Ben Ferguson
Reply all
Reply to author
Forward
0 new messages