Hi Sergiu,
Shouldn't this have been a new migrator instead? Artem had a comment
about leaving the old XWD_ARCHIVE column in the document table. Lots
of users have already executed this migrator so they won't execute
this. So if it's important to have everyone in the same state, I think
a new migrator would be maybe better. But then, maybe it's not
important?
Thanks
-Vincent
On Dec 14, 2007, at 2:14 PM, sdumitriu (SVN) wrote:
> Author: sdumitriu
> Date: 2007-12-14 14:14:08 +0100 (Fri, 14 Dec 2007)
> New Revision: 6377
>
> Modified:
> xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/
> store/migration/hibernate/R4359XWIKI1459Migrator.java
> Log:
> XWIKI-1954: When migrating the document archive format from 1.1 to
> 1.2, delete the contents of the old XWD_ARCHIVE field
> Fixed.
>
>
> Modified: xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/
> xwiki/store/migration/hibernate/R4359XWIKI1459Migrator.java
> ===================================================================
> --- xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/
> store/migration/hibernate/R4359XWIKI1459Migrator.java 2007-12-14
> 13:08:02 UTC (rev 6376)
> +++ xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/
> store/migration/hibernate/R4359XWIKI1459Migrator.java 2007-12-14
> 13:14:08 UTC (rev 6377)
> @@ -19,6 +19,7 @@
> */
> package com.xpn.xwiki.store.migration.hibernate;
>
> +import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.sql.Statement;
> @@ -88,7 +89,7 @@
> Statement stmt =
> session.connection().createStatement();
> ResultSet rs;
> try {
> - rs = stmt.executeQuery("select XWD_ID,
> XWD_ARCHIVE, XWD_FULLNAME from xwikidoc");
> + rs = stmt.executeQuery("select XWD_ID,
> XWD_ARCHIVE, XWD_FULLNAME from xwikidoc where XWD_ARCHIVE is not
> null order by XWD_VERSION");
> } catch (SQLException e) {
> // most likely there is no XWD_ARCHIVE
> column, so migration is not needed
> // is there easier way to find what column
> is not exist?
> @@ -97,6 +98,7 @@
> Transaction originalTransaction =
> ((XWikiHibernateVersioningStore
> )context.getWiki().getVersioningStore()).getTransaction(context);
>
> ((XWikiHibernateVersioningStore
> )context.getWiki().getVersioningStore()).setSession(null, context);
>
> ((XWikiHibernateVersioningStore
> )context.getWiki().getVersioningStore()).setTransaction(null,
> context);
> + PreparedStatement deleleteStatement =
> session.connection().prepareStatement("update xwikidoc set
> XWD_ARCHIVE=null where XWD_ID=?");
>
> while (rs.next()) {
> if (logger.isInfoEnabled()) {
> @@ -104,13 +106,13 @@
> }
> long docId = Long.parseLong(rs.getString(1));
> String sArchive = rs.getString(2);
> - if (sArchive==null) {
> - continue;
> - }
> XWikiDocumentArchive docArchive = new
> XWikiDocumentArchive(docId);
> docArchive.setArchive(sArchive);
>
> context
> .getWiki().getVersioningStore().saveXWikiDocArchive(docArchive,
> true, context);
> + deleleteStatement.setLong(1, docId);
> + deleleteStatement.executeUpdate();
> }
> + deleleteStatement.close();
> stmt.close();
>
> ((XWikiHibernateVersioningStore
> )context.getWiki().getVersioningStore()).setSession(session, context);
>
> ((XWikiHibernateVersioningStore
> )context
> .getWiki().getVersioningStore()).setTransaction(originalTransaction,
> context);
>
> _______________________________________________
> notifications mailing list
> [EMAIL PROTECTED]
> http://lists.xwiki.org/mailman/listinfo/notifications
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs