One thing we didn't discuss when we talked about version numbers and major vs. minor upgrades is the requirement that Roller be started to complete an upgrade.

If you're upgrading from version 1.1 to version 2.0 for example, you don't want to have to start Roller after you run each upgrade script. So, for 2.0, I hacked the 1.2, 1.3 and 2.0 scripts so that starting Roller is not necessary until you reach 2.0.

I wonder if there's anyway we can do the same here. Doesn't look like it.

- Dave



If you're upgrading from
On Dec 16, 2005, at 12:51 PM, [EMAIL PROTECTED] wrote:

Author: agilliland
Date: Fri Dec 16 09:51:12 2005
New Revision: 357196

URL: http://svn.apache.org/viewcvs?rev=357196&view=rev
Log:
updated 2.1 upgrade procedure.


Modified:
incubator/roller/trunk/src/org/roller/business/utils/ UpgradeDatabase.java

Modified: incubator/roller/trunk/src/org/roller/business/utils/ UpgradeDatabase.java URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/ business/utils/UpgradeDatabase.java? rev=357196&r1=357195&r2=357196&view=diff ======================================================================= ======= --- incubator/roller/trunk/src/org/roller/business/utils/ UpgradeDatabase.java (original) +++ incubator/roller/trunk/src/org/roller/business/utils/ UpgradeDatabase.java Fri Dec 16 09:51:12 2005
@@ -258,10 +258,16 @@
// this query will give us all websites that have modified their
             // default page to link to something other than "Weblog"
PreparedStatement selectUpdateWeblogs = con.prepareStatement( - "select website.id,template from website,webpage "+ + "select website.id,template,website.handle from website,webpage "+
                     "where webpage.id = website.defaultpageid "+
                     "and webpage.link != 'Weblog'");

+ PreparedStatement selectWeblogTemplate = con.prepareStatement( + "select id from webpage where websiteid = ? and link = 'Weblog'");
+
+ PreparedStatement updateWeblogTemplate = con.prepareStatement(
+                    "update webpage set template = ? where id = ?");
+
             // insert a new template for a website
PreparedStatement insertWeblogTemplate = con.prepareStatement(
                     "insert into webpage"+
@@ -279,21 +285,45 @@
             while (websiteSet.next()) {
                 String websiteid = websiteSet.getString(1);
                 String template = websiteSet.getString(2);
-                mLogger.info("Processing website: " + websiteid);
+                String handle = websiteSet.getString(3);
+                mLogger.info("Processing website: " + handle);
+
+                String defaultpageid = null;

-                // insert new Weblog template
-                insertWeblogTemplate.clearParameters();
-                insertWeblogTemplate.setString( 1, websiteid+"q");
-                insertWeblogTemplate.setString( 2, "Weblog");
-                insertWeblogTemplate.setString( 3, description);
-                insertWeblogTemplate.setString( 4, "Weblog");
-                insertWeblogTemplate.setString( 5, websiteid);
-                insertWeblogTemplate.setString( 6, template);
-                insertWeblogTemplate.executeUpdate();
+ // it's possible that this weblog has a "Weblog" template, but just + // isn't using it as their default. if so we need to fix that.
+                selectWeblogTemplate.clearParameters();
+                selectWeblogTemplate.setString(1, websiteid);
+ ResultSet weblogPageSet = selectWeblogTemplate.executeQuery();
+                if(weblogPageSet.next()) {
+ // this person already has a "Weblog" template, so update it
+                    String id = weblogPageSet.getString(1);
+
+                    updateWeblogTemplate.clearParameters();
+                    updateWeblogTemplate.setString(1, template);
+                    updateWeblogTemplate.setString(2, id);
+                    updateWeblogTemplate.executeUpdate();
+
+ // make sure and adjust what default page id we want to use
+                    defaultpageid = id;
+                } else {
+                    // no "Weblog" template, so insert a new one
+                    insertWeblogTemplate.clearParameters();
+                    insertWeblogTemplate.setString( 1, websiteid+"q");
+                    insertWeblogTemplate.setString( 2, "Weblog");
+                    insertWeblogTemplate.setString( 3, description);
+                    insertWeblogTemplate.setString( 4, "Weblog");
+                    insertWeblogTemplate.setString( 5, websiteid);
+                    insertWeblogTemplate.setString( 6, template);
+                    insertWeblogTemplate.executeUpdate();
+
+                    // set the new default page id
+                    defaultpageid = websiteid+"q";
+                }

                 // update defaultpageid value
                 updateDefaultPage.clearParameters();
-                updateDefaultPage.setString( 1, websiteid+"q");
+                updateDefaultPage.setString( 1, defaultpageid);
                 updateDefaultPage.setString( 2, websiteid);
                 updateDefaultPage.executeUpdate();
             }


Reply via email to