I played with this over the weekend, and I have this SQL code I could choose to run if I need to (note: it looks like the editor pulled out my indentation, so it may be harder to follow the code):
INSERT INTO pseudonyms (
user_id,account_id,workflow_state,unique_id,crypted_password,password_salt,persistence_token
,single_access_token,perishable_token,login_count,failed_login_count,last_request_at
,last_login_at,current_login_at,last_login_ip,current_login_ip,reset_password_token,position,created_at
,updated_at,password_auto_generated,deleted_at,sis_batch_id,sis_user_id,sis_ssha,communication_channel_id
,sis_communication_channel_id,stuck_sis_fields,integration_id,authentication_provider_id
)
SELECT
user_id,2,p0.workflow_state,p0.unique_id,crypted_password,password_salt,persistence_token,
single_access_token,perishable_token,0,0,null
,null,null,null,null,reset_password_token,position,created_at
,updated_at,password_auto_generated,deleted_at,sis_batch_id,sis_user_id,sis_ssha,communication_channel_id
,sis_communication_channel_id,stuck_sis_fields,integration_id,authentication_provider_id
FROM pseudonyms p0
WHERE p0.account_id = 1
AND NOT EXISTS
(
SELECT 1
FROM pseudonyms p1
WHERE p1.user_id = p0.user_id AND p1.id <> p0.id AND p1.account_id = 2
);
UPDATE pseudonyms p0
SET position = position + 1
WHERE account_id = 1 and position = 1
and EXISTS
(
SELECT 1
FROM pseudonyms p1
WHERE p1.user_id = p0.user_id AND p1.id <> p0.id AND p1.account_id = 2 and p1.position = p0.position
);
This will "fix" the imported user records. I've tested it well enough to know users can still log in, access a course, and get notifications.
Again, this is my 2nd choice. I don't like this for several reasons, including that it may have side effects I haven't seen yet, that it's fragile in the case of an update adding a required column, that it causes regular faculty and students to be listed under People in the Site Admin account, which I'm concerned may eventually have security implications, and that it feels like I'm still leaving something broken in our system.
In an effort to avoid needing to use this, I'm gonna open a new question. I feel like no one with any real canvas knowledge is paying attention here to what has become a longer thread. Opening a new question that goes right to what I've learned are closer to the real issue may be able to get some new and more-focused attention.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.