Closed (fixed)
Project:
Drupal core
Version:
8.0.x-dev
Component:
migration system
Priority:
Major
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
29 Jan 2015 at 20:02 UTC
Updated:
2 Sep 2015 at 04:04 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #1
miguelc303 commentedI did a patch to enable end users to migrate fields from Drupal 7 to Drupal 8 ; if you want to import some fields like links or videos , you must to enable they firsts.
Comment #2
miguelc303 commentedThis patch get fields from the correct table in Drupal 7. If one field has a module or entity_type that doesn't exist then will be ignored by the migration process.
Comment #3
benjy commentedComment #4
miguelc303 commentedComment #5
miguelc303 commentedAdded organization support to Anexus IT
Comment #6
phenaproximaAdded a test of the d7_field migration.
Comment #8
phenaproximaComment #9
phenaproximaMinor test cleanup.
Comment #11
phenaproximaBlocked by #2495755: Create MigrateDrupal7TestBase.
Comment #12
phenaproximaComment #13
phenaproximaMerged #2495303: Migration for Drupal 7 field instances.
Comment #14
phenaproximaMerged #2466785: Migration Files for Drupal 7 Field Instance Widget Settings and added unit tests of the three source plugins.
Comment #17
webchickThis is a blocker to node migrations. Escalating to a Migrate critical.
Comment #18
phenaproximaRe-rolled and cleaned up. All I really did was move files around, so the interdiff is more confusing than revealing and I decided to omit it.
Comment #20
phenaproximaBoy...there was a bunch of minor stuff wrong with the tests :) Fixed now.
Comment #22
phenaproximaGo again?
Comment #23
phenaproxima...and again?
Comment #25
mikeryanFor laughs, since I generated it anyway, here are the diffs against the D6 version. Too much to really review though...
Comment #26
mikeryanD6 had a whole bunch of special cases here - will we be identifying D7's special cases in a followup issue? If so, we should create that issue and link it here.
The referenced issue #2049485: Remove traces of the 'user_register_form' field setting was fixed 2 years ago :O. Something to remove from the D6 side as well...
A whole plugin just for this? Or are we anticipating more special cases being identified (D6 has a bunch of stuff here)?
I don't really follow, what else might it have worked for?
Ummm, what is $keep? It's not part of the prepareRow() API in general, and unused here... And now I notice it's in Field.php above as well, also unused.
Comment #27
phenaproximaComment #28
phenaproximaSignificantly beefed up the test of d7_field_instance_widget_settings.
Comment #29
phenaproximaAdded a couple of unit tests.
Comment #32
phenaproximaAdded migrations for view modes and formatter settings, with TONS of test assertions. The patch is pretty daunting to review, but it's reasonably thorough. There will definitely be a lot of rough edges, and certain aspects of fields (mostly type-specific settings) will not migrate without writing additional plugins, but it's a start. I figure it's OK to commit this now in order to unblock the Big Four migrations (nodes, users, comments, and taxonomy terms), and migrate more granular field settings later.
Comment #33
chx commentedNits:
source: type would work just as well. (it gets converted into the same array)
+ hidden: ~heh. the Symfony parser , as far as I am aware does not recognize this -- please check but it doesn't. Try and add a test for hidden: 0. That should skip the row.
trait? no pressure if not, it's just a 1 loc method. but perhaps other (d6?) uses too.
Overall looks very impressive.
Comment #35
benjy commentedentity_reference_label? That wasn't in core D7?
Is this meant to be a list?
nit: The d6 version is d6_view_modes with an "s"
We usually have issues against todo's, is there some processing we know we're missing already? Or maybe this should just be a comment?
D6 has quite a bit of processing but maybe D7/D8 align better?
Just remove the comment, we don't do inheritdoc and comments together I don't think it works with the api doc generator.
Missing function docs.
and here
I ran out of time, will review again before commit. Great work so far though looks good and awesome work with all the extra test coverage!
Comment #36
phenaproxima#33:
#35:
Comment #38
hussainwebCould this be the reason for the failure?
Comment #39
chx commentedComment #40
benjy commentedMy only concern would be that we don't have any processing here, I'd like to see a follow-up to discuss that.
It's not obvious why this is needed, can't the incoming instance settings have a default image?
This looks better in that it has a check on default_image.
Should this check if the field is excluded similar to how the D6 source does? Also i'll not a current bug here in the D6 source #2498291: Fields hidden in some view modes abort migration (D6)
None of these are related to this patch?
Other than the above I think this is ready to go in. I'm heading to NZ for 3 weeks so I probably won't have time to review again before commit but great work!
Comment #41
phenaproximaComment #42
benjy commentedThanks, looks good!
Comment #43
phenaproximaI see test failures on the horizon. This patch removes the default_image stuff, since it will need a proper lookup into the {file_managed} table. That should be done in a follow-up issue, though.
Comment #44
benjy commentedId's are preserved, what would the lookup be needed for?
Comment #45
phenaproximaTo get the file's uuid, since it appears that the default image is referred to by uuid...?
Comment #46
phenaproximaTentatively going back to RTBC because DrupalCI has passed all the tests. Testbot has been excruciatingly slow of late (taking hours upon hours).
Comment #54
phenaproximaOkay, finally. Back to RTBC.
Comment #55
webchickThis all looks like pretty standard Migrate stuff, and sounds like chx and benjy are +1. This is an important blocker to the "big 4" migrations, so let's get 'er done!
Committed and pushed to 8.0.x. Thanks!
Comment #57
webchickWent to test this out on a real life database tonight. Wonder if this is related? #2553595: Field formatter migration stuck in an infinite loop