Set up to test:

Important: See https://groups.drupal.org/node/398588 to get set up. This page also includes instructions for re-setting to a clean destination. Also note that any migrations that include the user migration as a dependency require that the D6 site has at least one other user in addition to user 1, since the superuser doesn't get migrated.

Ensure modules are enabled on the source and destination sites:
D6: drush en profile -y (if profiles should be migrated)
D8: N/A

Place the manifest file in the D8 site root

Download the attached .yml file, and place it in your Drupal 8 site root.

Run the migration

From the D8 site root:
drush migrate-manifest --db-url=mysql://user:pass@localhost/database D6Manifest-User.yml

If you've updated/installed drush 7.x after July 16, 2014, you'll want to use:

drush migrate-manifest --legacy-db-url=mysql://user:pass@source/source D6Manifest-User.yml

Compare post-migration settings

Main interface:
D6 config: /admin/user/profile
D8 config: admin/config/people/accounts/fields
Content for both: /admin/user/user

Success?

If your site migrates successfully, let us know with a comment on this issue. We'd love to hear details like:

  • the size and complexity of the site you migrated
  • performance observations
  • any customizations you made to the migration manifest!

Problems?

Open a new issue as a normal priority support request. Describe what happened, including the exact text of error messages. Depending on the nature of the problem, someone may ask for a sample of the data you're trying to migrate or follow up with other questions.

Remember, too, that this is pre-Beta. The focus is on D6 core > D8 core, not custom work or contributed modules, so there may be portions of your site that need special consideration that won't get addressed at this point in the process.

Important: Please connect your issue to this issue when you create it by using entering this ticket number, 2224001 , in the Parent issue field!

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

eliza411’s picture

Issue summary: View changes
ultimike’s picture

FileSize
349 bytes

Updating the manifest based on Benjy's comments: https://drupal.org/comment/8615923#comment-8615923

-mike

michaellenahan’s picture

FileSize
2.55 KB

Hello, I just gave this a try and got the attached error.
Migration d6_aggregator_feed did not meet the requirements

EDIT: the error was between the computer and the chair. I was using the wrong manifest.yml file.

benjy’s picture

If you could please post your manifest file.

ultimike’s picture

FileSize
354 bytes

I was having an issue getting my profile values to migrate over, but I noticed that the MigrateProfileValuesTest is using d6_profile_values:user. I updated my test manifest to the same and profile values were migrated. I'm attaching a new test manifest for migrating users.

Thanks,
-mike

ultimike’s picture

Title: Manual testing: User and User Profile » Manual testing (D6->D8): User and User Profile
Project: IMP » Drupal core
Version: » 8.x-dev
Component: Miscellaneous » migration system
Related issues: +#2260239: D6->D8 Profile field (checkbox), +#2260241: D6->D8 Profile field (date), +#2225959: D6 Users and User Profile data isn't migrating, +#2225725: Rename ProfileValues files to be UserProfileValues
ultimike’s picture

Issue summary: View changes
ultimike’s picture

Issue summary: View changes
ultimike’s picture

Issue summary: View changes
bdone’s picture

Issue summary: View changes

i've updated instructions' migrate-manifest command to use the db-url option, per latest version of migrate-manifest.

a-fro’s picture

Issue summary: View changes
jjpost’s picture

I tested field "Signature" by hand.

  • plaintext input -> Filtered html OK
  • html -> Filtered html OK
  • plaintext -> Full html OK
  • html -> full html OK
  • Special characters -> Filtered HTML OK
  • Special characters -> Full HTML OK
  • Field gets migrated when signatures are enabled on d6 and disabled on d8
  • Field gets migrated when signatures are disabled on d6 and enabled on d8
  • Field gets migrated when signatures are disabled on d6 and disabled on d8

Tested with 1 user and 500 users. Everything works as expected.

benjy’s picture

Issue summary: View changes
Anonymous’s picture

Tests failed on "selection" profile field type:

Running d6_filter_format [ok]
Running d6_user_role [ok]
Running d6_user_picture_field [ok]
Running d6_user_picture_field_instance [ok]
Running d6_user_picture_entity_display [ok]
Running d6_user_picture_entity_form_display [ok]
Running d6_user_picture_file [ok]
Running d6_user [ok]
Running d6_user_profile_field [ok]
The configuration property settings.allowed_values.etc. doesn't exist. [error]
(/var/www/drupal/core/lib/Drupal/Core/Config/Schema/Mapping.php:66)
Running d6_user_profile_field_instance [ok]
Attempt to create an instance of field profile_color that does not exist on entity type user. [error]
(/var/www/drupal/core/modules/field/src/Entity/FieldInstanceConfig.php:472)
Running d6_user_profile_entity_display [ok]
Running d6_user_profile_entity_form_display [ok]
Running d6_profile_values:user [ok]

The reason it failed is because I had a profile field of type "selection" (aka. list) called profile_color. The selection options were:

"Red
Blue
Green
etc." < the dot is the problem.

Further, it was marked private. Not sure if that has an implication. Going to re-run the test with more fields...

EDIT: the problem is the dot in the "etc." item. -> #2302253: User profile "selection" type field type does not migrate from D6 if any of the available options contain a dot

Anonymous’s picture

Added a URL field. The "link" type also fails:

Running d6_filter_format [ok]
Running d6_user_role [ok]
Running d6_user_picture_field [ok]
Running d6_user_picture_field_instance [ok]
Running d6_user_picture_entity_display [ok]
Running d6_user_picture_entity_form_display [ok]
Running d6_user_picture_file [ok]
Running d6_user [ok]
Running d6_user_profile_field [ok]
Attempt to create a field of unknown type <em class="placeholder">link</em>. [error]
(/var/www/drupal/core/modules/field/src/Entity/FieldConfig.php:287)
Running d6_user_profile_field_instance [ok]
Attempt to create an instance of field profile_website that does not exist on entity type user. [error]
(/var/www/drupal/core/modules/field/src/Entity/FieldInstanceConfig.php:472)
Running d6_user_profile_entity_display [ok]
Running d6_user_profile_entity_form_display [ok]
Running d6_profile_values:user [ok]

Problem has been moved to #2302259: Test coverage for user profile "link" type from D6.

Anonymous’s picture

The "freeform" field fails when it has a blob of text rather than comma separated (or multi-line) values.

This failed specatacularly with a blob of text...

  • All the profile fields failed when this was included in a user's profile (other users OK).
  • Freeform field showed up as a single-line text field with multiple values.

Text input on user's profile was:

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin viverra enim sed eros consectetur pellentesque. Vivamus sed erat sit amet tellus consectetur vulputate. Vestibulum lobortis sodales enim eu lacinia. Fusce in rutrum turpis. Nulla hendrerit risus ut mauris placerat aliquam. Mauris interdum, orci non placerat blandit, quam risus imperdiet mauris, eu mattis enim felis a elit. Cras consectetur quam a odio venenatis, a gravida sem commodo. Sed turpis erat, ornare pellentesque lorem non, interdum laoreet nisi."

Log:

Running d6_filter_format [ok]
Running d6_user_role [ok]
Running d6_user_picture_field [ok]
Running d6_user_picture_field_instance [ok]
Running d6_user_picture_entity_display [ok]
Running d6_user_picture_entity_form_display [ok]
Running d6_user_picture_file [ok]
Running d6_user [ok]
Running d6_user_profile_field [ok]
Attempt to create a field of unknown type <em class="placeholder">link</em>. [error]
(/var/www/drupal/core/modules/field/src/Entity/FieldConfig.php:287)
Running d6_user_profile_field_instance [ok]
Attempt to create an instance of field profile_website that does not exist on entity type user. [error]
(/var/www/drupal/core/modules/field/src/Entity/FieldInstanceConfig.php:472)
Running d6_user_profile_entity_display [ok]
Running d6_user_profile_entity_form_display [ok]
Running d6_profile_values:user [ok]
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column [error]
'profile_freeform_value' at row 2: INSERT INTO {user__profile_freeform} (entity_id,
revision_id, bundle, delta, langcode, profile_freeform_value, profile_freeform_format) VALUES
(:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2,
:db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5,
:db_insert_placeholder_6), (:db_insert_placeholder_7, :db_insert_placeholder_8,
:db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11,
:db_insert_placeholder_12, :db_insert_placeholder_13), (:db_insert_placeholder_14,
:db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17,
:db_insert_placeholder_18, :db_insert_placeholder_19, :db_insert_placeholder_20),
(:db_insert_placeholder_21, :db_insert_placeholder_22, :db_insert_placeholder_23,
:db_insert_placeholder_24, :db_insert_placeholder_25, :db_insert_placeholder_26,
:db_insert_placeholder_27), (:db_insert_placeholder_28, :db_insert_placeholder_29,
:db_insert_placeholder_30, :db_insert_placeholder_31, :db_insert_placeholder_32,
:db_insert_placeholder_33, :db_insert_placeholder_34), (:db_insert_placeholder_35,
:db_insert_placeholder_36, :db_insert_placeholder_37, :db_insert_placeholder_38,
:db_insert_placeholder_39, :db_insert_placeholder_40, :db_insert_placeholder_41),
(:db_insert_placeholder_42, :db_insert_placeholder_43, :db_insert_placeholder_44,
:db_insert_placeholder_45, :db_insert_placeholder_46, :db_insert_placeholder_47,
:db_insert_placeholder_48), (:db_insert_placeholder_49, :db_insert_placeholder_50,
:db_insert_placeholder_51, :db_insert_placeholder_52, :db_insert_placeholder_53,
:db_insert_placeholder_54, :db_insert_placeholder_55); Array
(
[:db_insert_placeholder_0] => 1
[:db_insert_placeholder_1] => 1
[:db_insert_placeholder_2] => user
[:db_insert_placeholder_3] => 0
[:db_insert_placeholder_4] => en
[:db_insert_placeholder_5] => Lorem ipsum dolor sit amet
[:db_insert_placeholder_6] =>
[:db_insert_placeholder_7] => 1
[:db_insert_placeholder_8] => 1
[:db_insert_placeholder_9] => user
[:db_insert_placeholder_10] => 1
[:db_insert_placeholder_11] => en
[:db_insert_placeholder_12] => consectetur adipiscing elit. Proin viverra enim sed eros
consectetur pellentesque. Vivamus sed erat sit amet tellus consectetur vulputate. Vestibulum lobortis
sodales enim eu lacinia. Fusce in rutrum turpis. Nulla hendrerit risus ut mauris placerat aliquam.
Mauris interdum
[:db_insert_placeholder_13] =>
[:db_insert_placeholder_14] => 1
[:db_insert_placeholder_15] => 1
[:db_insert_placeholder_16] => user
[:db_insert_placeholder_17] => 2
[:db_insert_placeholder_18] => en
[:db_insert_placeholder_19] => orci non placerat blandit
[:db_insert_placeholder_20] =>
[:db_insert_placeholder_21] => 1
[:db_insert_placeholder_22] => 1
[:db_insert_placeholder_23] => user
[:db_insert_placeholder_24] => 3
[:db_insert_placeholder_25] => en
[:db_insert_placeholder_26] => quam risus imperdiet mauris
[:db_insert_placeholder_27] =>
[:db_insert_placeholder_28] => 1
[:db_insert_placeholder_29] => 1
[:db_insert_placeholder_30] => user
[:db_insert_placeholder_31] => 4
[:db_insert_placeholder_32] => en
[:db_insert_placeholder_33] => eu mattis enim felis a elit. Cras consectetur quam a odio
venenatis
[:db_insert_placeholder_34] =>
[:db_insert_placeholder_35] => 1
[:db_insert_placeholder_36] => 1
[:db_insert_placeholder_37] => user
[:db_insert_placeholder_38] => 5
[:db_insert_placeholder_39] => en
[:db_insert_placeholder_40] => a gravida sem commodo. Sed turpis erat
[:db_insert_placeholder_41] =>
[:db_insert_placeholder_42] => 1
[:db_insert_placeholder_43] => 1
[:db_insert_placeholder_44] => user
[:db_insert_placeholder_45] => 6
[:db_insert_placeholder_46] => en
[:db_insert_placeholder_47] => ornare pellentesque lorem non
[:db_insert_placeholder_48] =>
[:db_insert_placeholder_49] => 1
[:db_insert_placeholder_50] => 1
[:db_insert_placeholder_51] => user
[:db_insert_placeholder_52] => 7
[:db_insert_placeholder_53] => en
[:db_insert_placeholder_54] => interdum laoreet nisi.
[:db_insert_placeholder_55] =>
)

EDIT: this later worked when I used this input data:

"One, two, three
four"

However, items "two" and "three" showed up as " two" and " three" respectively (note the preceeding space).

Issue created: #2302259: Test coverage for user profile "link" type from D6

ultimike’s picture

Issue summary: View changes
joemoraca’s picture

simple test with a few users worked for me - no custom fields

benjy’s picture

Status: Active » Fixed

Marking this issue fixed as I think we've reached a point now where the Drupal 6 to Drupal 8 issue path is stable enough that we can simply open individual issues as problems arise.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.