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!
Comment | File | Size | Author |
---|---|---|---|
#5 | D6Manifest-User.yml | 354 bytes | ultimike |
#3 | error.txt | 2.55 KB | michaellenahan |
Comments
Comment #1
eliza411 CreditAttribution: eliza411 commentedComment #2
ultimikeUpdating the manifest based on Benjy's comments: https://drupal.org/comment/8615923#comment-8615923
-mike
Comment #3
michaellenahan CreditAttribution: michaellenahan commentedHello, 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.
Comment #4
benjy CreditAttribution: benjy commentedIf you could please post your manifest file.
Comment #5
ultimikeI 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
Comment #6
ultimikeComment #7
ultimikeComment #8
ultimikeComment #9
ultimikeComment #10
bdone CreditAttribution: bdone commentedi've updated instructions' migrate-manifest command to use the db-url option, per latest version of migrate-manifest.
Comment #11
a-fro CreditAttribution: a-fro commentedComment #12
jjpost CreditAttribution: jjpost commentedI tested field "Signature" by hand.
Tested with 1 user and 500 users. Everything works as expected.
Comment #13
benjy CreditAttribution: benjy commentedComment #14
Anonymous (not verified) CreditAttribution: Anonymous commentedTests 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
Comment #15
Anonymous (not verified) CreditAttribution: Anonymous commentedAdded 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.
Comment #16
Anonymous (not verified) CreditAttribution: Anonymous commentedThe "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...
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
Comment #17
ultimikeComment #18
joemoraca CreditAttribution: joemoraca commentedsimple test with a few users worked for me - no custom fields
Comment #19
benjy CreditAttribution: benjy commentedMarking 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.