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
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.
Ed-Fi ODS Migration Tool Parameter Reference
Parameter | Description | Example | Required? |
---|---|---|---|
--Database | Database Connection String | --Database "Data Source=YOUR\SQLSERVER;Initial Catalog=Your_EdFi_Ods_Database;Integrated Security=True" | Yes |
--DescriptorNamespace | Descriptor Namespace prefix to be used for new and upgraded descriptors. Namespace must be provided in 3.x format as follows: Valid characters for an education organization name: alphanumeric and Script Usage: Provided string value will be escaped and substituted directly in applicable sql where the | --DescriptorNamespace "uri://ed-fi.org" | Yes |
--CredentialNamespace | Namespace prefix to be used for all new Credential records. Namespace must be provided in 3.x format as follows: Valid characters for an education organization name: alphanumeric and Script Usage: Provided string value will be escaped and substituted directly in applicable SQL where the | --CredentialNamespace "uri://ed-fi.org" | Yes, if table edfi.StaffCredential has data Optional if table edfi.StaffCredential is empty |
--CalendarConfigPath | Path to calendar configuration, which must be accessible from your sql server. Script Usage: Provided string value will be substituted directly in dynamic SQL where the | --CalendarConfigPath "C:\PATH\TO\YOUR\CALENDAR_CONFIG.csv" | Single-Year ODS: No (unless prompted by the upgrade tool) Multi-Year ODS: Yes |
--DescriptorXMLDirectoryPath | Path to directory containing 3.1 descriptors for import, which must be accessible from your sql server Script Usage: Provided string value will be substituted directly in dynamic SQL where the | --DescriptorXMLDirectoryPath "C:\PATH\TO\YOUR\DESCRIPTOR\XML" | Local Upgrade: No (applicable to most cases) Remote Upgrade: Yes Used if the Descriptor XML directory has been moved to a different location accessible to your sql server |
--BypassExtensionValidationCheck | Permits the migration tool to make changes if extensions or external schema dependencies have been found | --BypassExtensionValidationCheck | Extended ODS: Yes This includes any dataset with an extension schema or foreign keys pointing to the Ed-Fi schema. Others: No |
--CompatibilityCheckOnly | Perform a dry run for testing only to check ODS compatibility without making additional changes. The database will not be upgraded. | --CompatibilityCheckOnly | No. This is an optional feature. |
--Timeout | SQL command query timeout, in seconds. | --Timeout 1200 | No. (Useful mainly for development and testing purposes) |
--ScriptPath | Path to the location of the SQL scripts to apply for upgrade, if they have been moved | --ScriptPath "C:\PATH\TO\YOUR\MIGRATION_SCRIPTS" | No. (Only needed if scripts have been moved from the default location. Useful mainly for development and testing purposes) |
Troubleshooting Guide
The below section provides additional guidance for many common compatibility issues that can be encountered during the upgrade process.
Error received during upgrade | Explanation | How to fix it |
---|---|---|
Action Required: Unable to proceed with migration because the BypassExtensionValidationCheck option is disabled ... | An external dependency on the edfi schema has been found. As a courtesy, the migration tool will not proceed with the upgrade process without your permission. Common Examples:
Why: This notification is intended to bring extension items to your attention that will require manual handling. All primary keys and indexes on the | After reviewing the data and dependencies on your extension tables, add the Please review Step 8. Write Custom Migration Scripts for Extensions (above) before proceeding. |
Action Required: edfi.StaffCredential ... | The column StateOfIssueStateAbbreviationTypeId must be non-null for all records. This value will become part of a new primary key on the 3.1 schema. | Add a [StateOfIssueStateAbbreviationTypeId] for all records in [edfi].[StaffCredential]. This is the abbreviation for the name of the state (within the United States) or extra-state jurisdiction in which a license or credential was issued. The table is compatible for upgrade if the below query returns 0 results. |
Action Required - An EducationOrganizationId must be resolvable for every student in the following table(s) for compatibility with the upgraded schema starting in version 3.0: (Provided list of tables includes one or more of the following):
| The upgrade utility must be able to locate an [EducationOrganizationId] for every student with data in the listed tables to proceed. Beginning in v3.1, the schema structure now requires that these student information items be defined separately for each associated EducationOrganization rather than simply linking them to a student. | The easiest way to meet this requirement is to ensure that every student has a corresponding record in [edfi].[StudentSchoolAssociation] or [edfi].[StudentEducationOrganizationAssociation]. The upgrade tool will use this information to handle the rest of the data conversion tasks for you. |
Action Required: edfi.Assessment ... | All assessments must have a [Namespace] set. (This data may be found in [edfi].[Assessment] or [edfi].[AssessmentFamily]). In v3.x, the schema required that this column be non-null. | Add a [Namespace] for all assessment records. The table is compatible for upgrade if the below query returns 0 results |
Action Required: edfi.OpenStaffPosition ... | There may be no two duplicate This is uniqueness if required for the upgraded primary key on this table. | Update the RequisitionNumber values on edfi.OpenStaffPosition. Ensure that the same value is not used twice for the the same education organization. The table is compatible for upgrade if the below query returns 0 results. |
Action Required: edfi.RestraintEvent ... | There may be no two duplicate This is uniqueness if required for the upgraded primary key on this table. | Update the The table is compatible for upgrade if the below query returns 0 results. |
Action Required: edfi.GradingPeriod ... | There may be no two duplicate PeriodSequence values for the same school during the same grading period.Additionally, if prompted by the upgrade tool, all This compatibility requirement is a result of a primary key change between 2.x and v3
| Ensure that there are no two records with the same SchoolId, GradingPeriodDescriptorId, PeriodSequence, and SchoolYear.
Tip: You can be certain that the table is compatible for upgrade if the below query returns 0 results. (Requirements may be less strict than noted in the above query for some some multi-year Calendars. See the compatibility check script in the 01 Bootstrap directory for exact technical requirements.) |
Action Required: edfi.DisciplineActionDisciplineIncident ... | Every record in [edfi].[DisciplineActionDisciplineIncident] must have a corresponding record in [edfi].[StudentDisciplineIncidentAssociation] with the same [StudentUSI], [SchoolId], and [IncidentIdentifier]. The V3 schema no longer allowed discipline action records with students that are not associated with the discipline incident. A foreign key will be added to the new schema enforcing this. |
The table is compatible for upgrade if the below query returns 0 results |
Calendar configuration file error - various similar messages may appear that mention a table name and a list of school ids. Example error:Found {#} date ranges in [edfi].[ | The calendar configuration file contains the start date and end date for each school year. To support the new calendar features in V3, the migration tool uses this configuration file to assign a SchoolYear to all CalendarDate related entries in the database. There are several variations of this type of error which all have a similar meaning. The migration tool found date records in the specified table that could not be assigned a school year based on the BeginDate and EndDate information provided. | Either the calendar configuration file will need to be edited, or data in the specified table will need to be modified.
Example: Example Query: [edfi].[CalendarDate] SELECT * FROM [edfi].[CalendarDate] WHERE [SchoolId] = {School_Id_from_error_message} AND ( [Date] < {BeginDate_from_calendar_configuration_file} OR [Date] > {EndDate_from_calendar_configuration_file} ) |
SqlException: or similar: The object '{OBJECT_NAME_HERE}' is dependent on column '{COLUMN_NAME_HERE}'. | This type of unhandled SQL exception occurs when the migration process tries to alter an item that is being referenced by an external object, such as a foreign key on another table, or schema-bound view. Common causes
| Make sure that you have dropped ALL foreign keys and views from other schemas that have a dependency on the You do not need to drop any constraints on the edfi schema itself: This is handled automatically for you. For tips on locating foreign key dependencies quickly, see the query in Step 8b. above. |
A data validation failure was encountered on destination object {table name here} ... | Data was modified in a location that was not expected to change. A validation check from script directory Scripts/02 Setup/{version}/## Source Validation Check has failed. | This state is triggered if certain records are modified in the middle of migration that the upgrade utility expected would remain unchanged. The upgrade will be halted for you as a precaution to prevent unintended data loss. Common Causes:
If you are testing potential updates to the 2.x ODS data by hand (data only / no custom scripts):
If you are writing your own custom scripts:
If your v2.x Ed-Fi ODS schema is unmodified, and you are not making edits to the current scripting or data, this error should not occur during normal operation.
|