Table of Contents

  1. Introduction
  2. Upgrading From Fedora 2.1b to Fedora 2.1
  3. Upgrading From Fedora 2.0 to Fedora 2.1
  4. Migrating From Fedora 1.2.1 to Fedora 2.0

1. Introduction

If you have already upgraded to Fedora 2.1b and wish to migrate to the final Fedora 2.1 release, the procedure involves a simple software upgrade which is similar to upgrading from Fedora 2.0. See the instructions in section 2 below for details.

When moving from Fedora 2.0 to Fedora 2.1 you will be able to do a simple software upgrade without having to migrate digital objects via a mass export and ingest.   After you install Fedora 2.1, you can configure it to point to your existing repository datastores (both the existing repository directory storage locations and the existing relational database).  This involves changing parameters in the Fedora 2.1 server configuration file (fedora.fcfg) that define the storage directory paths and database location.  See the instructions in section 3 below for details.

When moving from Fedora Release 1.2.1, you must first migrate to Fedora 2.0.  Migration involves using the Fedora migration utility which will export objects from the old repository and ingest them into the new repository.  Migration (as opposed to software upgrade) is necessary when either the FOXML schema or the relational database schema changes in a new release.   This occurred between Fedora 1.2.1 and Fedora 2.0.  See the instructions in section 4 below for migration, then move on the the instructions in section 3.

If you are running a version of the Fedora software prior to version 1.2.1, you will need to migrate your server software up to version 1.2.1 first, and then proceed with the migration from Fedora 1.2.1 to Fedora 2.0. Steps for migrating to Fedora 1.2.1 can be found in the release notes section for Fedora 1.2.1.

 

2. Upgrading From Fedora 2.1b to Fedora 2.1

The move from Fedora 2.1b to Fedora 2.1 is quite simple and does not require migration of objects or rebuilding of the resource index.  There are a number of performance enhancements and bugs fizes made since the 2.1b. Refer to the Fedora 2.1 Release Notes for more details regarding the changes post Fedora 2.1b. If you are upgrading from Fedora 2.1b to Fedora 2.1 follow these steps:

  1. Download: download the Fedora 2.1 software from http://www.fedora.info/download
  2. Install:  install the Fedora 2.1 software
  3. Backup:  it is highly recommended that you create a backup of your pre-existing Fedora 2.1b repository
  4. Run the Fedora Setup Utility.  In Fedora 2.1, you can choose among four different security configurations.  Consult the Securing Your Repository Guide for a description of security configuration options.  To have an equivalent configuration to what was in Fedora 2.0 (no SSL, API-M authentication, open API-A) select the "no-ssl-authenticate-apim" option as demonstrated below.  You can easily change to more secure configurations at any time by rerunning the Fedora Setup Utility. 
     
    C:\fedora-2.1> fedora-setup no-ssl-authenticate-apim

     

  5. Configure Object Storage Location:  in the Fedora 2.1 server configuration file (fedora.fcfg) set the object storage location to point to that of of the Fedora 2.1b repository, for example:
     
    <param name="object_store_base" value="C:\fedora2_1b_objects"/>

     

  6. Configure Datastream Storage Location: in the Fedora 2.1 server configuration file (fedora.fcfg) set the datastream storage location to point to that of of the Fedora 2.1b repository, for example:
     
    <param name="datastream_store_base" value="C:\fedora2_1b_datastreams"/>

     

  7. Configure the Resource Index Storage Location: in the Fedora 2.1 server configuration file (fedora.fcfg) set the resource index storage location to point to that of of the Fedora 2.1b repository, for example:
     
    <datastore id="localKowariTriplestore">
    <comment>local Kowari Triplestore used by the Resource Index</comment>
    <param name="connectorClassName" value="org.trippi.impl.kowari.KowariConnector"/>
    <param name="remote" value="false"/>
    <param name="path" value="C:\fedora2_1b_resourceIndex"/>
    <param name="serverName" value="fedora"/>
    <param name="modelName" value="ri"/>
    <param name="poolInitialSize" value="3"/>
    <param name="poolMaxGrowth" value="-1"/>
    <param name="readOnly" value="false"/>
    <param name="autoCreate" value="true"/>
    <param name="autoTextIndex" value="false"/>
    <param name="memoryBuffer" value="true"/>
    <param name="autoFlushDormantSeconds" value="5"/>
    <param name="autoFlushBufferSize" value="20000"/>
    <param name="bufferFlushBatchSize" value="20000"/>
    <param name="bufferSafeCapacity" value="40000"/>
    </datastore>

     

  8. Configure the SQL Database Location:  in the Fedora 2.1 server configuration file (fedora.fcfg) set the relational database location topoint to the pre-existing database (used by the Fedora 2.1b repository), for example (if using MySQL):
     
    <datastore id="localMySQLPool">
      <param name="dbUsername" value="fedoraAdmin"/>
      <param name="dbPassword" value="fedoraAdmin"/>
      <param name="jdbcURL" value="jdbc:mysql://localhost/fedora21b?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/>
      <param name="jdbcDriverClass" value="com.mysql.jdbc.Driver"/>
      <param name="ddlConverter" value="fedora.server.utilities.MySQLDDLConverter"/>
      <param name="maxActive" value="100"/>
      <param name="maxIdle" value="10"/>
      <param name="maxWait" value="-1"/>
      <param name="minIdle" value="0"/>
      <param name="minEvictableIdleTimeMillis" value="1800000"/>
      <param name="numTestsPerEvictionRun" value="3"/>
      <param name="timeBetweenEvictionRunsMillis" value="-1"/>
      <param name="testOnBorrow" value="true"/>
      <param name="testOnReturn" value="true"/>
      <param name="testWhileIdle" value="true"/>
      <param name="whenExhaustedAction" value="1"/>
    </datastore>

     If you are using Oracle or mckoi as your database, update the appropriate datastore configuration.
     

  9. Configure the fedoraServerHost and fedoraServerPort: in the Fedora 2.1 server configuration file (fedora.fcfg) set the values for fedoraServerHost and fedoraServerPort to match those of your Fedora 2.1b server configuration, for example:
     
    <param name="fedoraServerPort" value="8080">
    <comment>Defines the port number on which the Fedora server runs;
    default is 8080.</comment>
    </param>
    <param name="fedoraShutdownPort" value="8005">
    <comment>Defines the port number used to shutdown the Fedora sever;
    default is 8005.</comment>
    </param>
    <param name="fedoraRedirectPort" value="8443">
    <comment>Defines the redirect port of the Fedora sever; default is
    8443.</comment>
    </param>
    <param name="fedoraServerHost" value="localhost">
    <comment>Defines the host name for the Fedora server, as seen from the
    outside world.</comment>
    </param>

     

  10. Start the Fedora 2.1 server
     
    C:\fedora-2.1> fedora-start
    Starting Fedora server...
    Deploying API-M and API-A...
    Processing file c:\fedora-2.1\server\config\deployAPI-A.wsdd
    <Admin>Done processing</Admin>
    audit parms deploy
    audit parms c:\fedora-2.1\server\config\deployAPI-A.wsdd
    audit parms 60
    Processing file c:\fedora-2.1\server\config\deploy.wsdd
    <Admin>Done processing</Admin>
    audit parms deploy
    audit parms c:\fedora-2.1\server\config\deploy.wsdd
    audit parms 15
    Initializing Fedora Server instance...
    Fedora Version: 2.1
    Fedora Build: 1
    Server Host Name: localhost
    Server Port: 8080
    Debugging: false
    log4j.configuration=null
    OK
    Finished. To stop the server, use fedora-stop.
    C:\fedora-2.1>

     

  11. You are done!

 

 

3. Upgrading From Fedora 2.0 to Fedora 2.1

The move from Fedora 2.0 to Fedora 2.1b is quite simple and does not require migration of objects.  If you are upgrading from Fedora 2.0 to Fedora 2.1 follow these steps:

  1. Download: download the Fedora 2.1 software from http://www.fedora.info/download
  2. Install:  install the Fedora 2.1 software
  3. Backup:  it is highly recommended that you create a backup of your pre-existing Fedora 2.0 repository
  4. Run the Fedora Setup Utility.  In Fedora 2.1, you can choose among four different security configurations.  Consult the Securing Your Repository Guide for a description of security configuration options.  To have an equivalent configuration to what was in Fedora 2.0 (no SSL, API-M authentication, open API-A) select the "no-ssl-authenticate-apim" option as demonstrated below.  You can easily change to more secure configurations at any time by rerunning the Fedora Setup Utility. 
     
    C:\fedora-2.1-src> fedora-setup no-ssl-authenticate-apim

     

  5. Configure Object Storage Location:  in the Fedora 2.1 server configuration file (fedora.fcfg) set the object storage location to point to that of of the Fedora 2.0 repository, for example:
     
    <param name="object_store_base" value="C:\fedora2_0_objects"/>

     

  6. Configure Datastream Storage Location: in the Fedora 2.1 server configuration file (fedora.fcfg) set the datastream storage location to point to that of of the Fedora 2.0 repository, for example:
     
    <param name="datastream_store_base" value="C:\fedora2_0_datastreams"/>

     

  7. Configure the SQL Database Location:  in the Fedora 2.1 server configuration file (fedora.fcfg) set the relational database location topoint to the pre-existing database (used by the Fedora 2.0 repository), for example (if using MySQL):
     
    <datastore id="localMySQLPool">
      <param name="dbUsername" value="fedoraAdmin"/>
      <param name="dbPassword" value="fedoraAdmin"/>
      <param name="jdbcURL" value="jdbc:mysql://localhost/fedora20?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/>
      <param name="jdbcDriverClass" value="com.mysql.jdbc.Driver"/>
      <param name="ddlConverter" value="fedora.server.utilities.MySQLDDLConverter"/>
      <param name="maxActive" value="100"/>
      <param name="maxIdle" value="10"/>
      <param name="maxWait" value="-1"/>
      <param name="minIdle" value="0"/>
      <param name="minEvictableIdleTimeMillis" value="1800000"/>
      <param name="numTestsPerEvictionRun" value="3"/>
      <param name="timeBetweenEvictionRunsMillis" value="-1"/>
      <param name="testOnBorrow" value="true"/>
      <param name="testOnReturn" value="true"/>
      <param name="testWhileIdle" value="true"/>
      <param name="whenExhaustedAction" value="1"/>
    </datastore>

     If you are using Oracle or mckoi as your database, update the appropriate datastore configuration.
     

  8. Configure the fedoraServerHost and fedoraServerPort: in the Fedora 2.1 server configuration file (fedora.fcfg) set the values for fedoraServerHost and fedoraServerPort to match those of your Fedora 2.0 server configuration, for example:
     
    <param name="fedoraServerPort" value="8080">
    <comment>Defines the port number on which the Fedora server runs;
    default is 8080.</comment>
    </param>
    <param name="fedoraShutdownPort" value="8005">
    <comment>Defines the port number used to shutdown the Fedora sever;
    default is 8005.</comment>
    </param>
    <param name="fedoraRedirectPort" value="8443">
    <comment>Defines the redirect port of the Fedora sever; default is
    8443.</comment>
    </param>
    <param name="fedoraServerHost" value="localhost">
    <comment>Defines the host name for the Fedora server, as seen from the
    outside world.</comment>
    </param>

     

  9. Rebuild the Fedora Resource Index.   Note that you MUST NOT point your Fedora 2.1 repository server at the pre-existing Fedora 2.0 Resource Index.   The Resource Index data model has changed slightly, and also there have been bug fixes on the Resource Index.    The Resource Index can be easily rebuilt using the Fedora Rebuild Utility, as shown below.  When prompted for what you want to do, select option 2 to rebuild the Resource Index only.   (Note: that you in lieu of Step 7 above, you could have chosen to rebuild a brand new SQL database, but this is not necessary.). A bug (Bugzilla #134) was fixed in the Fedora 2.1 that affects the length of the token field in the datastreamPaths SQL database table. The length of this field was changed form varachr(103) to varchar(199). If you do not rebuild the SQL database, it is recommend that you manually update the field length for this column table in your sql database using an appropriate database utility for your sql database. See the Release Notes for more details on this bug. 

    NOTE: The Fedora server must not be running while rebuilding the Resource Index
    .
     
    C:\fedora-2.1-src> fedora-rebuild
    Fedora Rebuild Utility
    ..........................
    
    WARNING: Live rebuilds are not currently supported.
    Make sure your server is stopped before continuing.
    
    Server directory is c:\fedora-2.1-src\dist\server
    Server profile is unspecified
    
    ---------------------------------------------------------------------
    
    What do you want to do?
    
    1) Test the rebuilder interface.
    2) Rebuild the Resource Index.
    3) Rebuild SQL database.
    4) Exit
    
    Enter (1-4) --> 2
    
    Rebuild the Resource Index.
    
    Start rebuilding with the above options?
    
    1) Yes
    2) No, let me re-enter the options.
    3) No, exit.
    
    Enter (1-3) --> 1
    
    Rebuilding...

     

  10. Start the Fedora 2.1 server
     
    C:\fedora-2.1-src> fedora-start
    Starting Fedora server...
    Deploying API-M and API-A...
    Processing file c:\fedora-2.1-src\dist\server\config\deployAPI-A.wsdd
    <Admin>Done processing</Admin>
    audit parms deploy
    audit parms c:\fedora-2.1-src\dist\server\config\deployAPI-A.wsdd
    audit parms 60
    Processing file c:\fedora-2.1-src\dist\server\config\deploy.wsdd
    <Admin>Done processing</Admin>
    audit parms deploy
    audit parms c:\fedora-2.1-src\dist\server\config\deploy.wsdd
    audit parms 15
    Initializing Fedora Server instance...
    Fedora Version: 2.1
    Fedora Build: 1
    Server Host Name: localhost
    Server Port: 8080
    Debugging: false
    log4j.configuration=null
    OK
    Finished. To stop the server, use fedora-stop.
    C:\fedora-2.1-src>

     

  11. You are done!

 

4. Migrating From Fedora 1.2.1 to Fedora 2.0

If you are upgrading from Fedora 1.2.1 to Fedora 2.0 follow these steps:

  1. Download patch number 2 from http://www.fedora.info/download/1.2.1/patch2.
  2. Make sure you are running v1.2.1 of the Fedora server software.

    DO NOT APPLY THIS PATCH TO ANY OTHER VERSION OF FEDORA!

    To check your repository's version, check the "describe" page. For instance, if you're running Fedora on localhost:8080, visit http://localhost:8080/fedora/describe

  3. Shut down your Fedora 1.2.1 server (using fedora-stop)
  4. Make a backup of the METSLikeExportDOSerializer.class file.

    Under Windows, make a backup of the following file:

    %FEDORA_HOME%\server\tomcat41\webapps\fedora\WEB-INF\classes\fedora\server\storage\translation\METSLikeExportDOSerializer.class
    

    Under Unix, make a backup of the following file:

    $FEDORA_HOME/server/tomcat41/webapps/fedora/WEB-INF/classes/fedora/server/storage/translation/METSLikeExportDOSerializer.class
    
  5. Copy the METSLikeExportDOSerializer.class from this patch into the above directory replacing the one there.

    Under Windows, copy the METSLikeExportDOSerializer.class from patch into the following directory

    %FEDORA_HOME%\server\tomcat41\webapps\fedora\WEB-INF\classes\fedora\server\storage\translation 
    

    OVER THE EXISTING FILE.

    Under Unix, copy the METSLikeExportDOSerializer.class from patch into the following directory

    $FEDORA_HOME/server/tomcat41/webapps/fedora/WEB-INF/classes/fedora/server/storage/translation 
    

    OVER THE EXISTING FILE.

  6. (OPTIONAL) If you installed the source code distribution of Fedora, you should also copy the included METSLikeExportDOSerializer.java file into your source directory.

    Under Windows, copy the METSLikeExportDOSerializer.java file from the patch into the following directory

    %FEDORA_HOME%\src\java\fedora\server\storage\translation
    

    OVER THE EXISTING FILE.

    Under Unix, copy the METSLikeExportDOSerializer.java file from the patch into the following directory

    $FEDORA_HOME/src/java/fedora/server/storage/translation
    

    OVER THE EXISTING FILE.

  7. Re-start your Fedora 1.2.1 server (using fedora-start). Your Fedora 1.2.1 repository is now ready for exporting its objects to the new server.
  8. Download the Fedora 2.0 software from http://www.fedora.info/download
  9. Install and configure the new Fedora 2.0 repository with a different host and port than the Fedora 1.2.1 server.
  10. Start the Fedora 2.0 server (using fedora-start).
  11. There are two ways to ingest objects from the 1.2.1 server: 1) use the admin GUI client to ingest the objects from the 1.2.1 repository or 2) use the fedora-ingest command-line utility to ingest the objects from the 1.2.1 repository
    1. Using the admin GUI client to ingest objects from the 1.2.1 repository
      1. Start the fedora admin GUI client (using fedora-admin).
      2. Under the File menu item, select File, Ingest, Object By Type, From Repository.
      3. Specify the hostname and port of the Fedora 1.2.1 server from which you want to ingest objects. Specify the administrator username and password for the 1.2.1 repository.
      4. Select all three object types including Behavior Definition, Behavior Mechanism, and Data object and click OK.
      5. The Fedora 2.0 server will now ingest all objects from the 1.2.1 repository.
      OR
    2. Using the fedora-ingest command-line utility to ingest objects from the 1.2.1 repository.
      1. Run the fedora-ingest command-line utility which is found in the client/bin directory.

        Under Windows, this file is found in:

        %FEDORA_HOME%\client\bin\fedora-ingest.bat
        

        Under Unix, this file is found in:

        $FEDORA_HOME/client/bin/fedora-ingest.sh
        
      2. Arguments for the fedora-ingest utility should include the following:
        • Type of ingest: specify R for repository
        • Hostname and port of the 1.2.1 repository from which you wish to ingest objects: source-host:source-port
        • Administrator username of the 1.2.1 repository: fedoraAdmin
        • Password for the administrator username of the 1.2.1 repository: fedoraAdmin is the default
        • Type of objects to ingest: specify DMO for all three object types.
        • Hostname and port of the 2.0 repository into which you are ingesting the objects: destination-host:destination-port
        • Administrator username of the 2.0 repository: fedoraAdmin
        • Password for the administrator username of the 2.0 repository: fedoraAdmin is the default
        • Log message: use "" for no message.

          For example:

          fedora-ingest r src-host:src-port fedoraAdmin fedoraAdmin DMO dest-host:dest-port fedoraAdmin fedoraAdmin ""
          
  12. After successfully ingesting all objects from the 1.2.1 repository, shutdown the 1.2.1 repository (using fedora-stop).
  13. If you desire to run the Fedora 2.0 repository under the same hostname and port as the 1.2.1 repository, you can now shutdown the 2.0 repository using fedora-stop, reconfigure the host and port in the fedora.fcfg file for the 2.0 repository to match those of the previous 1.2.1 repository, and restart the Fedora 2.0 repository.