I finally published (as GPL) my migration from Ning 2 to Drupal 8.1
(I migrated from Ning 2 to Drupal 8.1.1 in may 2016).
I now also have a migration for 8.2.4 (only draft published: if in urgent need, use that, or migrate to 8.1.10 and update to 8.2.4 or contact me). Also did draft for OpenSocial: will not elaborate on that more (that's site building). Instead will provide a more simple sample distribution with the "groups" module only and a generic post content type.
Use Cases:
It's a starter kit that might save some migration cost.
It might also be interesting for the sample data and
even for non Drupal destinations (although the generated
intermediate csv is strongly tailored against Drupal).
Destination System, Limitations:
The first draft was Ning 2 -> 8.1.10 .
Destination is pure Drupal 8 core, no whistles and bells at all.
Groups are only mapped to a site type node+forum, no ACL;
membership is conserved as multiple entity relationship.
Audio, Video are not handled. Blogs become a forum.
Users are migrated with profile questions (weird ning json ..).
Discussions, events, notes, pages become nodes.
Forum categories become taxonomy, just like the group forums.
Comments are migrated for all nodes. User profile comments
are not yet handled (missing: handle left/suspended:
that still confuses re-numbering of the comments:
renumbering is required, because Drupal cannot set cid).
The tool chain is:
a:ning2export --b:preprocessor--> c:CSV --d:migrate_ning2--> e:D8 core
The package consists of
a: sample data for the json
b: the preprocessor (C++ source and exe)
c: sample csv generated from preprocessor
d: the migrate_ning2 module and helper contrib modules (patched)
e: a Drupal 8 core configuration and files as well as
e1: pre migration dump: activate migrate modules and import sample CSV
e2: post migration dump with the imported sample CSV included
Note that the migration is very unconventional
in that it does not use Ids generated by dependency
migrations and managed by the migrate module,
but instead uses a preprocessor (C++) which
transforms the Ning json (sometimes corrupt json)
to CSV, which is imported using migrate_source_csv:
the preprocessor does the bulk of the work:
it creates or renumbers ids where required/configures
and thus also can transform the html such that links
are relocated to drupal too: this is used for inline images
but also intra-content links. For comments, it uses a trick:
manipulate AUTO_INCREMENT to control id generation
(unfortunately the API does not support setting the comment id).
It also handles character encoding (ning encoding to utf8),
filtering of left/suspended users (content partially in ning dump).
The preprocessor has evolved from a json reader (check and
correct corrupt ning json export) and is a little complex,
but it has many configuration options and produces an
extensive error log. If more than configuration is required,
feel free to ask me via my Drupal profile.
I want to clean up more, but if somebody is in a hurry ..
Plan/Status as of 20 April 2017:
- x adapt for 8.2: done, but only draft published, see download link.
- I also did a draft version for Drupal OpenSocial distribution . I will not elaborate on that any more than the draft (too much sitebuilding, quitting the way of a generally usable migration starter kit): critical points are: Ning Networks often have forum categories, forum like groups, closed groups: how can the forum category structure be integrated in the OpenSocial Taxonomy, which is too simplistic/formalistic?
- x cleanup: include newest migrate modules, test with current drush
- @ version for Organic Groups, using D7 (not yet published). Will publish only when I updated doc, extended test data did the same for D8 with module "groups"
- - port preprocessor to Linux (currently Visual Studio, Windows)
- - cleanup: handle language better (current is german/DE single language)
- - bug: handle profile comments (currently not imported)
- - bug: handle timezone problem for event dates
- - feature: maybe switch to date with end date (new D8 field type in 8.2)
- - maybe I can get sample data for Audio/Video soon.
D7 solution
I also published the D7 version as GPL (but I never used it in production):
https://www.drupal.org/node/2321831#comment-9809851
D8 download link
With readme documentation, screenshots, download zip file:
http://www.r5c.de
Comments
Sandbox: Migrate Ning2
FYI: Andriy Yun created a sandbox for this publication (thanks!):
https://www.drupal.org/sandbox/andreyun/2834338
This is a real opportunity for many....
There is likely to be a mass-exodus of Ning owners soon and this might be just the kind of thing that's needed. I've been playing with how to do the migration myself for a while and this looks like it's in the right direction. I'll try it out over the next month or two and report back. Thanks for the hard work, this one looks like a nightmare.
D8 currently stalled, but will come back to it soon ..
Currently working on a version Ning2 > Drupal7 + Organic Groups for a site 10 times bigger than my very small D8, and plan to have a similar version with D8 groups only (no OpenSocial).
During the D7 thing I also enhanced the preprocessor (which is still on Windows) and tested with two destination group node types (site and topic, which is a separation that often occurs). Some small fix is missing for that in the preprocessor (only affects perma links to comments: generate by node type for tricky CID import).
I also want to provide better sample/test data.
--
Next step after that will be to port the C++ preprocessor to Linux.