ElCamino.Identity.AzureTable.DataUtility.exe Migrates or previews users and/or roles to upgrade to the key and index schema in 2.2 Migration paths: All versions < 2.2 require a users and roles migration. *Important! The users and roles migrations generate new unique keys and doesn't check for duplicate records in the target tables. The target tables should be new empty tables for the migration to work as is. The migration code should be tested, modified and extended for your needs. Make sure the appsettings.json has the correct Azure Storage connection information and is in the same directory as ElCamino.Identity.AzureTable.DataUtility.exe The appseetings.json should define the source and target connections and tables. noargs, /help or /? - shows this message. e.g. ElCamino.Identity.AzureTable.DataUtility.exe /? /preview: - no data is modified. Shows how many users will be affected. Commits no changes to the repository. Must be followed with a valid migration command token of 'users' or 'roles' e.g. ElCamino.Identity.AzureTable.DataUtility.exe /preview:users e.g. ElCamino.Identity.AzureTable.DataUtility.exe /preview:roles /migrate: - migrates users to the new email index. Use this after you have done a /preview: of your data. Must be followed with a valid migration command token of 'users' or 'roles' e.g. ElCamino.Identity.AzureTable.DataUtility.exe /migrate:users e.g. ElCamino.Identity.AzureTable.DataUtility.exe /migrate:roles /pagesize: - (optional) If defined, must be followed with an integer greater than 0 and less than or equal to 1000. Controls how many users to pull back in a single table storage request. Can be used with either /preview: or /migrate:. Use with /preview: to see how many pages of data you have with the given page size. Default value: 1000 e.g. ElCamino.Identity.AzureTable.DataUtility.exe /preview:roles /pagesize:500 e.g. ElCamino.Identity.AzureTable.DataUtility.exe /migrate:roles /pagesize:500 e.g. ElCamino.Identity.AzureTable.DataUtility.exe /migrate:users /pagesize:100 /startpage: - (optional) If defined, must be followed with an integer greater than 0. Controls which 'page' of user data to start processing. Can be used with either /preview: or /migrate:. Directly related to the /pagesize. Can be used with /finishpage: also. Use with /preview: to see how many users would affected. Default value: 1 e.g. (Skips page 1) ElCamino.Identity.AzureTable.DataUtility.exe /preview:users /pagesize:500 /startpage:2 ElCamino.Identity.AzureTable.DataUtility.exe /preview:users /startpage:2 ElCamino.Identity.AzureTable.DataUtility.exe /migrate:users /pagesize:500 /startpage:2 /finishpage: - (optional) If defined, must be followed with an integer greater than 0. Controls which 'page' of user data to end processing. Can be used with either /preview: or /migrate:. Directly related to the /pagesize. Can be used with /startpage: also. Use with /preview: to see how many users would affected. Default value: none, will process all pages of user data. e.g. (Processes through page 3 and stops.) ElCamino.Identity.AzureTable.DataUtility.exe /preview:roles /finishpage:3 e.g. (Skips page 1 and processes through page 3) ElCamino.Identity.AzureTable.DataUtility.exe /preview:roles /pagesize:500 /startpage:2 /finishpage:3 ElCamino.Identity.AzureTable.DataUtility.exe /preview:roles /startpage:2 /finishpage:3 ElCamino.Identity.AzureTable.DataUtility.exe /migrate:roles /pagesize:500 /startpage:2 /finishpage:3 /maxparallel: - (optional) If defined, must be followed with an integer greater than 0. Controls the maximum parallel processes with the /migrate: process. Default value is 2 times the amount of processors; this is a very conservative default setting. e.g. ElCamino.Identity.AzureTable.DataUtility.exe /migrate:users /maxparallel:10