This version of the Ed-Fi ODS / API is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.
How To: Upgrade an ODS Database from Version 2.x to Version 3.1
This document explains how to upgrade an existing v2.x ODS / API to version 3.1. The ODS v3.1 database update includes the latest enhancements based on feedback from the Ed-Fi Community.
The steps can be summarized as:
- 1 Step 1. Read the Ed-Fi ODS v3.1 Upgrade Overview
- 2 Step 2. Install Required Tools
- 3 Step 3. Build the Ed-Fi ODS Migration Tool
- 4 Step 4. Back Up and Create a Working Copy of the 2.x Target Database
- 5 Step 5. (Multi-Year ODS Only) Create a Calendar Configuration File
- 6 Step 6. (ODS with NO Extensions Only) Run the Migration Tool
- 7 Step 7. (Extended/Modified ODS Only) - Perform a Test Migration Without Extensions
- 8 Step 8. (Extended/Modified ODS Only) - Write Custom Migration Scripts for Extensions
- 9 Step 9. Post-Upgrade: Review Data Changes
A compatibility reference chart, a command-line parameter list, and a troubleshooting guide are included. Each upgrade step is outlined in detail below.
Step 1. Read the Ed-Fi ODS v3.1 Upgrade Overview
Before you get started, you should review and understand the information in this section.
Target Audience
These instructions have been created for technical professionals, including software developers and database administrators. The reader should be comfortable with performing the following types of tasks:
Creating and managing SQL Server database backups
Performing direct SQL commands and queries
Execution of a command-line based tool that will perform direct database modifications
Creating a configuration file for upgrade (.csv format)
Writing custom database migration scripts (Extended ODS only)
General Notes
Your v2.x of the Ed-Fi ODS / API will checked for compatibility automatically during the migration process. If changes are needed, you will be prompted at the command line by the migration utility. A summary of commonly encountered compatibility conditions has been included in this section for reference.
The new v3.1 schema contains upgrades to the structure of primary keys on several tables. In most instances, these new uniqueness requirements will be resolved automatically for you with no action required.
There are some areas where new identities cannot be generated automatically on your behalf during upgrade. These tables will need to be updated manually.
Ed-Fi ODS Migration Tool source code, hosted on Ed-Fi Alliance GitHub: https://github.com/Ed-Fi-Alliance/Ed-Fi-ODS/tree/v3.1.1/Utilities/Migration
Example calendar configuration files: https://github.com/Ed-Fi-Alliance/Ed-Fi-ODS/tree/v3.1.1/Utilities/Migration/Sample%20Calendar%20Config
Compatibility Conditions
This section describes compatibility conditions (i.e., requirements that may need intervention for the compatibility tool to function properly) and suggested remediation.
Other Compatibility Conditions
There are several other less common items not included above. The migration utility will check for these items automatically and provide guidance messages as needed. For additional technical details, please consult the Troubleshooting Guide below.
Step 2. Install Required Tools
Ensure that you have an instance of the Ed-Fi ODS / API running locally that has been set up following the instructions in Getting Started - Installation Steps.
Step 3. Build the Ed-Fi ODS Migration Tool
Open <source directory>\Ed-Fi-ODS\Utilities\Migration\Migration.sln in Visual Studio and build in Release mode.
Step 4. Back Up and Create a Working Copy of the 2.x Target Database
Create a full backup of the target v2.x EdFi_Ods database.
Restore this backup to your SQL Server instance as a copy, in a new location.
Make note of the database connection string as it will be required for a later step.
Step 5. (Multi-Year ODS Only) Create a Calendar Configuration File
In most cases, you can skip this step if the ODS contains valid calendar data for only one school year. The migration tool will usually be able to resolve this item automatically for you.
The v3.x ODS upgrade includes enhancements to the calendar, including tracking of school year information for every calendar event and session. To ensure that your new calendar is accurate, the migration tool will need to know which school year to associate with every calendar item in your ODS.
Example calendar configuration files can be downloaded from the download panel on the right.
The following is an example of a calendar configuration file (CSV) for Grand Bend ISD:
Example 1: Grand-Bend calendar-config.csv
SchoolId,SchoolYear,StartDate,EndDate
255901001,2011,2010-08-23,2011-05-27
255901044,2011,2010-08-23,2011-05-27
255901107,2011,2010-08-23,2011-05-27Note that each line contains a SchoolId, SchoolYear, the first calendar day and the last calendar day of the school year.
Create a new calendar configuration file (.CSV) by referencing the above examples. Your configuration file must match the following format (including header row):
Example 2: calendar-config.csv
SchoolId,SchoolYear,StartDate,EndDate
{Your_First_School_Id},20XX,{FirstDayOfSchoolYear},{LastDayOfSchoolYear}
{Your_Second_School_Id},20XX,{FirstDayOfSchoolYear},{LastDayOfSchoolYear}
...Store the configuration file in a location that is accessible by your SQL server
Step 6. (ODS with NO Extensions Only) Run the Migration Tool
Open a new command prompt and navigate to the Ed-Fi ODS Migration Console tool build location:
CD {YourDevFolderHere}\Ed-Fi-ODS\Utilities\Migration\EdFi.Ods.Utilities.Migration.Console\bin\ReleaseLaunch the console tool. Modify the below example parameters to match your environment. Replace the example "
uri://ed-fi.org" with the Namespace Prefix to insert for your new descriptors:.\EdFi.Ods.Utilities.Migration.Console.exe --Database "YOUR_DATABASE_CONNECTION_STRING_HERE" --CalendarConfigPath "C:\PATH\TO\YOUR\CALENDAR_CONFIG_IF_APPLICABLE.csv" --DescriptorNamespace "uri://ed-fi.org" --CredentialNamespace "uri://ed-fi.org"Notes for upgrades performed on a remote database
The calendar configuration file path provided during upgrade must be accessible by your SQL server for importing and validation.
The XML files used to create v3.1 descriptors are by default located in
"\Utilities\Migration\Descriptors\3.1". This directory must also be accessible by your SQL server for importing. If you need to copy this directory to a new location, you may make use of the--DescriptorXMLDirectoryPath "C:\PATH\TO\YOUR\DESCRIPTOR\XML"parameter to point the migration tool to the new location of these items
Users who are running the migration tool on an extended ODS must use the
--BypassExtensionValidationCheckoption during upgrade in order to allow the tool to make changes when extension dependencies are present.Details on upgrading an extended ODS are included in the steps below.
The console tool will check your ODS for compatibility, and then proceed to perform an in-place upgrade on the specified database.
If you encounter any compatibility messages or errors during upgrade
During the upgrade process, your ODS will be checked for compatibility with the latest version. If changes are required, you may encounter a compatibility message, and the upgrade will stop.
ExampleAfter making the required changes (or writing custom scripts), simply launch the upgrade utility again. The upgrade will proceed where it left off and retry with the last script that failed.
See the Troubleshooting Guide below for additional guidance
Once the process runs to completion with no errors, your upgrade is complete
For a summary of all available parameter options for the Ed-Fi ODS console-based migration tool, please see the included reference below.
Step 7. (Extended/Modified ODS Only) - Perform a Test Migration Without Extensions
It is highly recommended that you first perform a test migration without your extension tables present in order to ensure that all core upgrade requirements have been met
On your ODS copy, temporarily drop all extension tables.
Complete the migration process exactly as detailed in Step 6, above.
Once the migration has completed successfully on the core Ed-Fi data, restore your v2.0 ODS working copy from backup, including all extension tables, and proceed with the next step
Step 8. (Extended/Modified ODS Only) - Write Custom Migration Scripts for Extensions
Important notes before you begin
When running the migration tool on an ODS with extensions or external dependencies on the EdFi schema, you must add the
--BypassExtensionValidationCheckparameter at the command line. This is required in order to permit the migration tool to make changes to an extended database.The Troubleshooting Guide below contains helpful advice for users upgrading an ODS with extensions.
Step 8a. Locate the Ed-Fi Migration scripts and review the current upgrade conventions
The edfi migration scripts are located by default in <source directory>\Ed-Fi-ODS\Utilities\Migration\Scripts\.
All SQL scripts are run in numerical order, with version-specific upgrade further categories.
The v2.0 to V3.1 upgrade passes though v2.5 on the way. It will execute scripts in the following version directories:
v24_to_v25
v25_to_v31
The directory structure appears as follows:
Directory Name | What does this directory contain? | What scripts should you add here? |
|---|---|---|
00 Setup | The first group of scripts that is run before data migration begins. Setup-type scripts, such as the creation of stored procedures used during upgrade are added here. | Optional: You may place custom scripts that you would like to execute before compatibility checks or schema updates begin here. Scripts in each version directory will be executed in numerical order. |
01 Compatibility Check | Ed-Fi data compatibility preconditions are checked using the scripts in this directory. | None needed. |
02 Upgrade | Contains the core upgrade scripts for each version. All SQL scripts are run in numerical order by path. Details have been included below this chart. The v2.0 to v3.1 upgrade will execute scripts in the following version directories:
| Optional:
|
03 Cleanup | Removes temporary data generated during upgrade | Optional: You may place custom scripts that you would like to execute after all schema updates have been performed here. Scripts in will be executed in numerical order order. |
Version-Specific Upgrade Step Details for v2.x to v3.1
The core upgrade script directory, 02 Upgrade, contains several upgrade steps for each version which are detailed below. You can insert custom scripts at any point in the process as needed for custom Extensions.
Step 8b. Write scripts to drop ALL foreign keys on your extension tables that depend on the edfi schema
All edfi primary keys and indexes are dropped automatically during upgrade. The existence of any external constraint that depends on edfi data will result in an error state.
You may insert these scripts in the following directory
Option 1: Insert with similar Ed-Fi scripts in directory/step:
Scripts/02 Upgrade/{version}/## Drop ConstraintsOption 2: (To run before all upgrade tasks begin):
Scripts/00 Setup/{version}
Scripts will be executed in numerical order. Number your scripts such that they run before the edfi scripts are executed. This will prevent a sql exception from occurring when dependent items on the
edfischema are dropped.Tip: The following query can quickly identify all constraints that need to be dropped for migration to proceed. Use this as a guide when writing your custom migration scripts.
Step 8c. Create Other Migration Scripts as Needed for Custom Extensions
After creating scripts that drop all dependent constraints, you can re-test your data migration to ensure that it will complete without error. Be sure to add the
--BypassExtensionValidationCheckoption at the command line.Create the remaining scripts needed to upgrade your extension tables for v3.1, using the chart provided above for reference.
Step 8d. Upgrade Your Extended ODS
With all custom scripting in place, you may now proceed with the upgrade as detailed in Step 6. (ODS with NO Extensions Only) Run the Migration Tool, above.
Step 9. Post-Upgrade: Review Data Changes
Review warnings/action items generated during upgrade
By default, these will be stored in
"C:\ProgramData\Ed-Fi-ODS-Migration\Migration.log"This message list will contain action items that my require your attention
Review your upgraded ODS.
A schema named
[v2_to_v3_deprecated]will be created to store a copy of major objects that were dropped or altered significantly during upgrade, including v2 descriptor/type references. If desired, this entire schema is safe to delete once you are positive that the data contained will no longer be needed.
Some data elements that were part of the v2 model are either no longer a part of the v3 model, or may be altered to meet the upgraded schema requirements. The following chart summarizes a list of major items that will be altered or dropped during upgrade