1
votes

We installed a new TFS 2017.2 with new SQL 2016 Server and one new Collection. After moving old TFS 2015.1 collections to this new server, we got schema conflict errors in TFS reports.

Most of them were name conflicts with localization language names and could be resolved with “witadmin changefield” command. However, the last conflict with “System.IsDeleted” field cannot be resolved, because the “witadmin listfields” command does not list this field. The “witadmin changefield” command says “TF26027: A field definition System.IsDeleted in the work item type definition file does not exist. Add a definition for this field or remove the reference to the field and try again.”

In the content collection databases at the new SQL server I found a table dbo.tbl_Field with a Value “System.IsDeleted” in the “ReferenceName” column in one row. This row has different values in the “Name” column in the new and the old collection Databases. So looks like this type exists and has a similar name conflict to the other fields, but witadmin doesn’t list this field and I don’t think it’s a good idea to change values directly in SQL for TFS...

Some idea how to fix this? Thanks in advance for your help!

1
Did you rebuild the warehouse?Daniel Mann
Yes, with the client UI and then with the Web UI ProcessAnalysisDatabase and ProcessWarehouse. After rebuilds i could see other conflicts dissapearing, only this one with "System.IsDeleted " stays.Paul S.

1 Answers

1
votes

Determine in which of the following ways you want to resolve the schema conflicts:

  • Change the attribute for the field in one project collection to match the assignments that are made in other project collections. You should take this action when teams use the field in the same ways in similar reports or for cross-project reporting.
  • Relabel the reporting reference name of the field in conflict. You should take this action when the fields are used in different ways or you must maintain a different field. In this case, the field is not used by teams that work in different project collections for cross-project reporting.
  • Mark a field as non-reportable for one or more collections. You should take this action when the field is not used for reports about those project collections.
  • Remove the field from the team project collection. You should take this action if the field is not used by any team projects or reports.

If you want to dig into TFS database and modify the data. You could ask the help of TFS support, or do it under their guidance.