CHANGELOG.txt 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. Migrate 2.8
  2. ===========
  3. Features and enhancements
  4. - #2379289 - Better handle interaction of --update with highwater marks.
  5. - #2403643 - Support an additional level of subfields.
  6. - #2472045 - Add language subfields only if field is translatable.
  7. - #2474809 - Provide better message for bad dependencies.
  8. - #2397791 - Provide detailed field validation errors.
  9. - #2309563 - Add support for running migrations via wildcard name.
  10. - #2095841 - Abstract mail system disablement for more flexibility.
  11. - #2419373 - Provide ability to cache map lookups.
  12. - #2141687 - Provide detailed message on file copy error.
  13. Bug fixes
  14. Field sanitization added to prevent possibility of XSS - see security advisory
  15. https://security.drupal.org/node/155268.
  16. - #2447115 - Add xpath handling to the field mapping editor.
  17. - #2497015 - Term reference handler would ignore all terms if one was NULL.
  18. - #2488560 - MigrateSourceList/MigrateSourceMultiItems iterators prematurely
  19. return.
  20. - #2446105 - Keep coded DNM source field mappings from overriding UI mappings.
  21. - #2415977 - Use temporary:// instead of /tmp for drush logging.
  22. - #2475473 - Fix handling of --idlist when map not joined.
  23. - #2465387 - Fix handling of --stop option on migrate-import.
  24. Migrate 2.7
  25. ===========
  26. Features and enhancements
  27. - #2296911 - Add a source handler for IBM DB2.
  28. - #2256761 - Add a destination handler for variables.
  29. - #2047815 - Support multi-column source keys in idlist.
  30. - #1751438 - Add spreadsheet source plugin.
  31. Bug fixes
  32. - #2415597 - Make batching of SQL sources optional, and force map_joinable FALSE.
  33. - #2403593 - SQL batching messes up cases with altered queries, such as idlist.
  34. - #2298969 - Verify wizard validation function exists.
  35. - #2268863 - Fix drush --all option.
  36. - #2410523 - Remove inconsistent escaping of migrate_drush_path.
  37. Migrate 2.6
  38. ===========
  39. IMPORTANT CHANGES SINCE MIGRATE 2.5
  40. -----------------------------------
  41. Migration developers will need to add the "advanced migration information"
  42. permission to their roles to continue seeing all the info in the UI they're
  43. used to.
  44. Auto-registration (having classes be registered just based on their class name,
  45. with no call to registerMigration or definition in hook_migrate_api()) is no
  46. longer supported. Registration of classes defined in hook_migrate_api() is no
  47. longer automatic - do a drush migrate-register or use the Register button in the
  48. UI to register them.
  49. Migration class constructors should now always accept an $arguments array as
  50. the first parameter and pass it to its parent. This version does support legacy
  51. migrations which pass a group object, or nothing, but these methods are
  52. deprecated.
  53. Features and enhancements
  54. - #2390229 - Make literal strings monolithic.
  55. - #2391789 - Add extender getter to better support extending wizards.
  56. - #2363015 - Add support for modifying wizards defined by other modules.
  57. - #2353527 - Add getter/setter for trackLastImported.
  58. - #2302929 - Explicitly count IDs for JSON source counts.
  59. - #2296187 - Batch MigrateSQLSource queries.
  60. - #2260211 - Allow skipping of file contents in MigrateListFiles.
  61. - #2259089 - Display actual query for SQL sources.
  62. - #2224297 - Destination handler for custom blocks.
  63. - #2370677 - Add removeStep() method to Wizard API.
  64. - #2306953 - Give basic users a little more information.
  65. - #2261357 - Add prepareCallback/completeCallback to table destination.
  66. - #2306923 - Propagate message statuses to drupal_set_message in batch.
  67. - #2301679 - Display all source key fields in the message view.
  68. - #2312075 - Add --ignore-highwater option to drush imports
  69. - #1961316 - Get data from all XML namespaces
  70. - #1298724 - Add a node revision destination plugin.
  71. - #1890610 - Add a MongoDB source plugin
  72. - #2065295 - Add ability to disable other module's hooks during migration.
  73. - #2051547 - Add ability to revert UI-defined field mappings.
  74. - #1998632 - Extend MigrateItemsXML to handle an array of XML files.
  75. - #1990612 - Add a row status argument to MigrateException, allowing rows to
  76. be cleanly skipped by throwing exceptions.
  77. - #2017835 - Add MigrateFileUriAsIs file class, and make file migrations more
  78. flexible.
  79. - #2004426 - UI support for editing dependencies; enable setting dependencies
  80. through arguments.
  81. - #1826112 - A new API has been added to support external modules in developing
  82. easy-to-use wizard-based UIs.
  83. - #1833380 - Major refactoring of the UI, breaking groups and migrations
  84. (tasks) into separate pages, introducing an advanced permission and
  85. presenting a simplified UI to those with only the basic permission.
  86. - #1860450 - The UI now has the capability of spawning import/rollback operations
  87. in drush, with email notifications of completion. The notification
  88. ability is available when running drush at the command line, which
  89. may be useful for running imports via cron.
  90. - #1996602 - A default field handler is now provided that should handle many if
  91. not most field types without custom handlers.
  92. - #1901980 - Support encrypting particular arguments saved to the database, to
  93. support wizard implementations that may be prompting for secure
  94. database credentials.
  95. - #1896096 - Add ability to define field mappings via arguments at registration
  96. time, and use those to override mappings in code.
  97. - #1961620 - When editing field mappings, allow destination or source fields to
  98. be explicitly set DNM.
  99. - #1996280 - Allow all field/subfields/options to be edited, and indent
  100. subfields/options to make the relationship more clear.
  101. - #1996350 - Allow sourceMigration to be edited.
  102. - #1996736 - Add support for hook_migrate_api_alter().
  103. - #1984568 - Add setters to enable constructing migrations according to a
  104. dependency injection pattern.
  105. - #1835822 - Hash source rows to detect changes.
  106. - #1975180 - Explicitly check dependency existence so missing dependencies aren't
  107. reported as circular.
  108. - #1984534 - Updating/cleanup of examples to reflect current best practices.
  109. - #1972600 - Add getter for the MigrateXMLReader member of MigrateSourceXML.
  110. - #1856694 - Allow disabling of uri encoding.
  111. - #1835142 - Add names-only option to drush ms command.
  112. - #1892296 - Increase time limit for batch UI migrations.
  113. - #1839644 - Groups have been extended to record titles and arguments in the db.
  114. - #1896920 - Remove auto-registration, and make static registration expicit.
  115. - #1928956 - Clean up registration/instantiation chicken-and-egg problems, by
  116. supporting consistent constructor arguments.
  117. - #1550878 - Added UI for deregistering migrations, including one-button
  118. deregistration of orphans.
  119. - #1792894 - Remove empty field values, permitting proper defaulting.
  120. - #1903236 - Allow reset of migrate_migrations() cache.
  121. - #1894344 - Support warn_on_override for bulk unmigrated methods.
  122. - #1886404 - Allow subfields to be mapped before primary fields.
  123. Bug fixes
  124. - #2391891 - idlist with XML source causes exception.
  125. - #2314077 - Don't merge group dependencies into migration dependencies.
  126. - #2392683 - Set vocabulary name (bundle) explicitly for term reference fields.
  127. - #2266395 - Check for valid picture file saving users.
  128. - #2225551 - Add field validation to entity destination plugins.
  129. - #2285966 - Added exception handling around constructors.
  130. - #2370877 - Fix reloading of wizard steps after first.
  131. - #2358767 - Topological sort to help avoid false circular dependency errors.
  132. - #2019193 - Properly handle destination DNM status on field mapping save.
  133. - #2250081 - Fix PostgreSQL failure updating node statistics on comments.
  134. - #2157933 - Fix PostgreSQL error with empty source migrations.
  135. - #2177313 - Make sure reused file entities are saved to pick up field changes.
  136. - #2352971 - Treat empty default values as NULL in field mapping editor.
  137. - #2347205 - Explicitly default the language for terms.
  138. - #2307599 - Notice for non-advanced users on rollback.
  139. - #2305105 - Remove pedantically-deprecated hyphens.
  140. - #2325237 - Handle language arrays for file fields.
  141. - #2258909 - Use migrated languages for file fields.
  142. - #2323605 - Handle single-parent terms properly.
  143. - #2313495 - Handle multilingual path aliases.
  144. - #2261227 - Fixed missing subfields on edit mapping form.
  145. - #2154385 - Add file/line context to source plugin exceptions.
  146. - #2190255 - Remove duplicate warnings on missing XML source.
  147. - #2129609 - Remove warnings on MS SQL counts.
  148. - #2109931 - Pass drush global options to subprocess.
  149. - #2236279 - Prevent ignore_case from causing created terms to be lower-cased.
  150. - #2104149 - Sanity-check decrypted arguments.
  151. - #2047523 - Consistently document destination handler fields() implementations.
  152. - #2244759 - Rollback migrations in proper (reverse) order in UI.
  153. - #2184641 - Make saveHighwater() work with PostgreSQL.
  154. - #2076035 - Properly check key values in saveMessage().
  155. - #2076035 - Validate that term names are not empty.
  156. - #2225809 - Use proper API for registering wizard classes.
  157. - #2105037 - Expose nid/uid destinations when is_new is on.
  158. - #2145213 - Add SQLMap constructor documentation.
  159. - #2213033 - Add batch callback documentation.
  160. - #2095829 - Remove all variables on uninstall.
  161. - #2072721 - Proper title for migrate_example_baseball feature.
  162. - #1999228 - Removed AJAX from field mapping form for performance.
  163. - #2237755 - Fix activeUrl handling in JSON source.
  164. - #2237891 - Use drupal_register_shutdown_function().
  165. - #2141409 - Handle drush spawning when Drupal in subdirectory.
  166. - #2191335 - Remove unused columns from CSV source row.
  167. - #2210533 - Properly pass directory by reference.
  168. - #2141569 - Explicitly create group in baseball example.
  169. - #2159291 - Add message for missing argument to drush migrate-messages.
  170. - #2019193 - Fix unsetting of DNM source fields through the UI.
  171. - #2227061 - Fix to subfields in a multi-value context.
  172. - #2170177 - Properly handle multi-value fields when a subfield is mapped first.
  173. - #2120205 - Fix bug when upgrading lastimported from D6 to D7.
  174. - #2109821 - Handle multi-value subfields in the default field handler.
  175. - #2039649 - Smarter setting of file 'type' field.
  176. - #2106925 - Fix machine_name generation for legacy migrations.
  177. - #2102087 - Don't pass --group to drush subprocess.
  178. - #2099585 - Enable group option on drush migrate-stop.
  179. - #2088255 - Eliminate notices on migrate_map_hash with track_changes.
  180. - #2014849 - Make sure (again) statistics properly default to 0.
  181. - #2042535 - Properly set file_usage for user pictures.
  182. - #2060631 - Fix notices on poll vote import.
  183. - #2049689 - Empty values for node is_new caused SQL errors.
  184. - #2042399 - Node import did not respect revision flag.
  185. - #2034885 - For XML sources, don't override values populated in prepareRow().
  186. - #2041267 - Handle lack of potential dependencies on edit page.
  187. - #2040101 - Breadcrumbs in migration UI missing sections
  188. - #2033947 - Empty migration display names when matching group names.
  189. - #2037265 - Static migrations were not registered on module enable.
  190. - #2021457 - Coding standard improvements for xml.inc.
  191. - #2030559 - Add deprecation messages for arguments().
  192. - #1854382 - Fix handling of terms with leading spaces.
  193. - #2025137 - Ignore --update in the presence of --idlist.
  194. - #2023813 - Apply defaultValue() for empty XML values.
  195. - #2023657 - Prevent duplicate aliases when updating nodes.
  196. - #2021973 - Drush deregistration needs to handle mixed-case machine names.
  197. - #2017443 - Properly hash XML source rows with track_changes on.
  198. - #2020095 - Preserve arguments in legacy constructors.
  199. - #2018841 - Default field handler needs to account for empty column
  200. descriptions.
  201. - #2016173 - Fix fatal error editing MigrationBase migrations.
  202. - #2015327 - Remove broken automatic field mapping feature.
  203. - #2014849 - Make sure statistics properly default to 0.
  204. - #2011024 - Wildcard groups/tasks in the menu hierarchy, saving the need to
  205. rebuild menus when migrations are registered/deregistered.
  206. - #2010884 - Clean up empty default groups on dbupdate.
  207. - #2004296 - Enforce map/message table names with prefixes.
  208. - #2009222 - Properly update map/message tables on a non-default connection.
  209. - #2006158 - Fix warnings on default field handler fields().
  210. - #1999918 - Move permissions to core Migrate module.
  211. - #1999290 - Check that an XMLMigration has actually populated $row->xml.
  212. - #1989012 - Support preserve_files for MigrateFileFid.
  213. - #1982564 - Properly handle messages for ignored rows.
  214. - #1989022 - Strip HTML tags from drush fields output.
  215. - #1988008 - Restore group dependency support.
  216. - #1985750 - Add missing prepareRollback/completeRollback for file destinations.
  217. - #1978702 - Check highwater marks against the starting highwater.
  218. - #1974216 - Change field mapping table PK to a simple serial column.
  219. - #1977578 - Bad exception handling in MigrateDestinationTableCopy.
  220. - #1973030 - Handle zero-valued timestamps properly.
  221. - #1973092 - Fix preservation of sourceMigration when editing mappings.
  222. - #1968358 - Prevent unnecessary reimport when using track_changes.
  223. - #1968014 - Fix menu notices on task list page.
  224. - #1967946 - Missing check on existence of mapping.
  225. - #1849350 - Make sure encoding of uris doesn't break query strings.
  226. - #1844316 - Ensure rollback_action is added to all map tables.
  227. - #1913462 - Fix update functions returning arrays.
  228. - #1831940 - Allow empty string source keys in handleSourceMigration().
  229. - #1896042 - Fix incorrect usage of originalQuery.
  230. - #1954936 - Allow overriding source count in isComplete.
  231. - #1952430 - Prevent bogus "no error provided" messages.
  232. - #1931168 - Properly cache class info in _migrate_class_list().
  233. - #1900914 - Disable email with no custom mail system configured.
  234. - #1901648 - Missing bundle property on file migrations.
  235. - #1885362 - Make access callback explicit, to avoid conflict with admin_views.
  236. - #1880512 - Strip tags from descriptions on drush migrate-mappings.
  237. - #1872446 - Properly handle updates on role migration.
  238. - #1871764 - Pass zero values through handleSourceMigration.
  239. - #1839534 - Handle missing chunk separator in MigrateItemFile.
  240. - #1854382 - Prevent duplicate terms due to leading/trailing spaces.
  241. - #1794236 - Namespace detail pages within menu system.
  242. - #1836426 - Proper check on activeUrl for multiple XML files.
  243. Migrate 2.5
  244. ===========
  245. IMPORTANT: Automatic registration of new migration classes is no longer done on
  246. a cache clear. Depending on automatic registration is now deprecated, and you
  247. are encouraged to implement your migrations as DynamicMigration and explicitly
  248. register them via hook_migrate_api() or MigrationBase::registerMigration().
  249. If your migrations are not explicitly registered, you must request auto-registration
  250. with a "drush mar" (drush migrate-auto-register) command, or by clicking the
  251. "Register" button at admin/content/migrate/registration.
  252. Features and enhancements
  253. - #1824024 - Destination and field handlers may now be registered through
  254. hook_migrate_api(). Automatic registration of all migration and
  255. handler classes may be disabled at admin/content/migrate/registration.
  256. The handler configuration formerly at admin/content/migrate/configure
  257. is now at admin/content/migrate/handlers.
  258. - #1778952 - Update examples to emphasize explicit registration via
  259. hook_migrate_api().
  260. - #1819730 - Make migration of files in a field context non-fatal.
  261. - #1816652 - Provide useful warning when file subfield arrays don't line up.
  262. - #1778952 - Enable registration of dynamic migrations via hook_migrate_api().
  263. Add explicit auto-registration of non-dynamic migrations, remove
  264. performing registration on cache clear.
  265. - #1421974 - Add queueMessage(), so messages can be generated in prepareRow().
  266. - #1626374 - Allow creation of duplicate terms.
  267. - #1810306 - Allow multi-value keys in MigrteItemJSON.
  268. - #1799964 - Add reference query getter to MigrateSourceSQL.
  269. - #1670410 - Sanity-check migration machine names.
  270. - #1637458 - Pass field instance rather than just field name to field() methods.
  271. - #1688312 - Allow any file field argument to have per-instance values.
  272. - #1701764 - Add prepareKey() method to customize source keys.
  273. - #1703050 - Add track_last_imported option for maps.
  274. - #1690092 - Protect migrations, or specific rows, from rollback.
  275. - #1672572 - Stifle mapping override messages.
  276. - #1621608 - Support for splitting files on import.
  277. - #1637292 - Support case-sensitive matching on term reference fields.
  278. - #1647594 - Add information message on unmatched terms.
  279. - #1621906 - Support DESTINATION system-of-records for menu links.
  280. Bug fixes
  281. - #1827052 - Properly check for bad XML.
  282. - #1824118 - Make --force work for rollbacks.
  283. - #1659150 - Change 'ok' message types to 'status'.
  284. - #1690080 - Deal with self-references in handleSourceMigration().
  285. - #1797644 - Remove bogus assignment on term update.
  286. - #1807522 - Handle ignored map rows in handleSourceMigration().
  287. - #1803648, #1805184 - Handle empty values in handleSourceMigration().
  288. - #1780850 - By default, urlencode all path components in MigrateFileUri;
  289. - #1763932 - Empty path aliases generated for users.
  290. - #1717284 - Make sure nodes with unspecified languages end up language-neutral.
  291. - #1712434 - Highwater fails when highwater field values == 0.
  292. - #1708296 - Handle timestamps before 1902.
  293. - #1637444 - Don't offer format subfield for plain text fields.
  294. - #1700678 - Only show path as a destination where applicable.
  295. - #1693304 - Role import results not reported.
  296. - #1676652 - Fix preserve_files issues with file destination, MigrateFilFid,
  297. FILE_EXISTS_REUSE cases.
  298. - #1679798 - Remove remote file import, for reliability of simpletests.
  299. - #1619822 - Cleanup drush subprocess handling.
  300. - #1635184 - Properly NULL csvHandle when closing.
  301. - #1630544 - Fix FILE_EXISTS_REUSE to actually reuse existing file entities.
  302. - #1618466 - Fix picture notice when updating users.
  303. - #1615682 - Fix to CSV record counting.
  304. Migrate 2.4
  305. ===========
  306. IMPORTANT: The file migration support (both MigrateDestinationFile and
  307. the file field handler) has been completely refactored since Migrate 2.3 - if you
  308. are importing files as part of your migration, you MUST change your migrations
  309. to properly use the new implementation. See http://drupal.org/node/1540106 for
  310. details on how to use the new handlers and destination.
  311. Features and enhancements
  312. - #1685122 - Add previous source field name to notice.
  313. - #1692912 - Add vocabulary name to notice.
  314. - #1606586 - Add activeUrl public method to MigrateSourceXML.
  315. - #1587842 - Remove sample CSV files from migrate project.
  316. - #1152878 - drush migrate-analyze command, for source data analysis.
  317. - #1587566 - Support escape option for CSV sources on PHP 5.3.
  318. - #1189328 - UI option to ignore dependencies.
  319. - #1016452 - Support migrating user role assignments by name.
  320. - #653636 - Add migrate-messages command to dump message table.
  321. - #1428166 - Make message columns sortable.
  322. - #1459888 - Removed deprecated source count(), showMessage(), setOutputFunction().
  323. - #1528916 - Link field descriptions to drupal.org documentation.
  324. - #722686 - Support for node statistics.
  325. - #1299646 - Enforce dependencies on rollback.
  326. - #1328408 - Support --group on drush migrate-status.
  327. - #1402822 - Cleaner handling of exceptions from source plugins.
  328. - #1240928 - File handling completely refactored - see note above.
  329. - #1279778 - Improved method for mapping options and subfields.
  330. - #1403044 - Added menu destination plugins.
  331. - #1350284 - Visually group migrations by group in drush.
  332. Bug fixes
  333. - #1680878 - Fix rollback through UI.
  334. - #1693492 - Map table query not using right connection.
  335. - #1614318 - MigrateFileUri failed to pass file object through.
  336. - #1601974 - Remove percent sign fix-up, leave to particular application.
  337. - #1600912 - Base constructor was undermining UI override of displayFunction.
  338. - #1595056 - Handle empty arguments from migrate_status table.
  339. - #1595166 - Support multiple source keys in MigrateList.
  340. - #919108 - Cleaner error-handling when updating destinations that don't exist.
  341. - #1574502 - Coder review, remove dead code.
  342. - #1570536 - Undefined property in term.inc.
  343. - #1569612 - skip_empty should only skip NULL values.
  344. - #1561448 - Proper handling of is_new for users.
  345. - #1205278 - Don't multiply-increment usage counts when preserving files; remove
  346. file_usages on uninstall.
  347. - #1438282 - Handle errors thrown when getting counts.
  348. - #1358318 - Fix dedupe() overdeduping on --update.
  349. - #1538046 - Give highwater marks a chance at preparation before using them.
  350. - #1408248 - Handle errors in complete() cleanly.
  351. - #1541882 - Make sure displayFunction is set before calling it.
  352. - #1529362 - Make proper check if previously imported.
  353. - #1537076 - Apply languages to each value in a multi-value field.
  354. - #1542922 - Fix XML parsing bug.
  355. - #1538508 - Fix notice when mapping parent_name.
  356. - #1537352 - Check limits and status before next().
  357. - #1540120 - Zero not working as defaultValue.
  358. - #1508654 - MigrateSourceSQL needs to respect join aliases.
  359. - #1518076 - UI side of subfield handling.
  360. - #1480762 - Fix cross-database joins to map table.
  361. - #1520688 - setDisplayFunction needs to be static.
  362. - #1518064 - Upgrade needs to check field existence.
  363. - #1518008 - Upgrade uses obsolete db_column_exists API.
  364. - #1308268 - Term migration should link to pre-existing terms.
  365. Migrate 2.3
  366. ===========
  367. Features and enhancements
  368. - #1315910 - Added migrate-deregister drush command.
  369. - #1437076 - Make Migration class field mapping methods public.
  370. - #1430528 - Document importance of migrating term parents first.
  371. - #1418126 - Use node_delete_multiple on migrate-wipe.
  372. - #1424632 - Improve user migration performance by reducing hash count.
  373. - #1414616 - Automatically update migration arguments.
  374. - #1364326 - Default --limit option to items.
  375. - #1337640 - Properly optimize the SQL source query for highwater marks.
  376. - #1366588 - Source plugin support has been refactored to put more of the common
  377. processing in the base class. When implementing a source plugin,
  378. implement performRewind() and getNextRow().
  379. - #519906 - Added support for the core poll module (choices and votes).
  380. - #1355940 - Track all source rows in the map table.
  381. - #1358650 - Truncate text fields according to configured max_length.
  382. - #941440 - Autodetection of source fields when unspecified.
  383. - #1341776 - Add option to skip source counting.
  384. - #1342936 - Pass source key in calls to Migration::createStub().
  385. - #1335110 - Automatically lowercase MD5 passwords.
  386. - #1331912 - Catch exception due to skipped beginProcess().
  387. - #1337810 - Documented hooks in migrate.api.php.
  388. - #1342322 - Added default implementation of prepareRow(), simplifying source plugins.
  389. - #1336534 - Added MigrateSourceXML for efficient handling of large XML files.
  390. - #1330552 - Provide more detail on bad field mappings.
  391. - #1321078 - Display incomplete dependencies in the error message.
  392. - #1321062 - Simple base class for field handlers.
  393. - #1314448 - Added tnid to node destination handler.
  394. - #1231492 - Added source handler for retrieving content from file directories.
  395. - #1290706 - Centralize loading of XML.
  396. - #1295040 - Support --update functionality in UI.
  397. - #1304444 - Added static displayMessage(), deprecating showMessage().
  398. - #1290706 - Centralize loading of XML.
  399. - #1254398 - Prevent accidental emailing during migration.
  400. Bug fixes
  401. - #1378114 - Handle case-sensitive term name variations properly.
  402. - #1450950 - Convert user datetimes values to timestamps.
  403. - #1437208 - Handle malformed CSV files quietly.
  404. - #1413350 - Support invoking subprocesses under Drush 5.
  405. - #1404732 - Properly call taxonomy_term handler fields() method.
  406. - #1447368 - Handle purely numeric PHP memory_limit.
  407. - #1432802 - Default $options to prevent PHP 5.4 error.
  408. - #1333656 - Remove content type/fields when uninstalling migrate_example_baseball.
  409. - #1416012 - Cleanly handle NULL source key values in saveIDMapping().
  410. - #1419086 - Better error handling in MigrateXMLReader::next().
  411. - #1422114 - ID list array must be imploded for queries.
  412. - #1372204 - Fix loss of pictures when updating users.
  413. - #1364034 - Add cache_key option to sources, for disambiguation.
  414. - #1354162 - Make sure messages are retrieved from the right connection.
  415. - #1352648 - Update mode reapplied on each batch in UI.
  416. - #1349246 - Postgres error updating migrate_log.
  417. - #1342686 - Generalized needs-update support.
  418. - #1341598 - filename/filemime not set in file_link/file_blob cases.
  419. - #1342736 - drush options don't need -- prefix.
  420. - #1340204 - MigrateDestinationFile::prepare() didn't call parent::prepare().
  421. - #1336880 - Fix XPath handling in MigrateItemsXML::getIDSFromXML.
  422. - #1334546 - Validate compound keys passed to handleSourceMigration().
  423. - #1305338 - Corrected type-hint in MigrateSourceSQL constructor.
  424. - #1305910 - MigrateDestinationTable now tracks inserted/updated records.
  425. - #1284592 - Fixed error on empty term parents.
  426. - #1300258 - Fixed error on unfulfilled term references.
  427. - #1292462 - Group missing from drush options.
  428. - #1290122 - Force destinations to implement __toString().
  429. - #1290120 - Warnings updating users if roles not set.
  430. - #1290118 - Warning in MigrateItemJSON::getItem()
  431. - #1133096 - Failure to clear currentRow in MigrateSourceMultiItems.
  432. Migrate 2.2
  433. ===========
  434. Features and enhancements
  435. - #1240928 - Generalize file handlers, to ease media module support.
  436. - #1226768 - Improved exception handling.
  437. - #1230294 - Get correct count of CSV with embedded newlines.
  438. - #1185632 - Handle (potentially multiple) headers in CSV source plugin.
  439. - #1210152 - Improved error messages on file field migration.
  440. - #1212818 - migrate_ui support for one-step rollback-and-import.
  441. - #1218244 - Support for is_new for users.
  442. - #1216796 - Use file_destination() to generate destination filespec.
  443. - #719650 - Implemented ability to assign migrations to groups, and run by group.
  444. - #1201762 - Implemented built-in caching for source counts, and flag to enable it.
  445. - #1205278 - Added preserve_files argument to MigrateFileFieldHandler.
  446. - #1205278 - Added preserve_files option to MigrateDestinationFile.
  447. - #1078368 - Implemented create_term argument for term references, to lazy-create terms.
  448. - #1199150 - Added file_fid function to file field migration.
  449. - #1195802 - Added prepareRow() support for MSSQL plugin.
  450. - #1195784 - Added verification of required extension to MSSQL plugin.
  451. - #1180188 - Added ability to save BLOB data to file fields and file entities.
  452. - #1181136 - Provided mechanism to handle incoming MD5-encrypted passwords.
  453. - #1181720 - Add item/second limiting to UI.
  454. - #1181826 - Implemented hook_hook_info(), so implementing modules can define
  455. hook_migrate_api() in example.migrate.inc.
  456. - #1179464 - Added capability of disabling handlers.
  457. - #1175094 - Added support for field handler complete() methods.
  458. - #1176930 - Renamed migrate-descriptions to migrate-mappings, enhanced to export to CSV.
  459. - #1169724 - Implemented source plugin for Oracle.
  460. Bug fixes
  461. - #1265514 - Fixed error message for failed XML load in MigrateItemsXML.
  462. - #1231398 - Add map data to row in Oracle source plugin.
  463. - #1225636 - File field: fixed warnings, added docs.
  464. - #1227130 - On import, clear messages before applyMappings().
  465. - #1195802 - Fixed SQL Server problem handling end of batch; brought Oracle/SQL
  466. Server implementations in line with each other.
  467. - #1205278 - Fixed file entity rollback to preserve files when requested.
  468. - #1223468 - Make sure getIDsFromXML always returns an array.
  469. - #1223734 - Fixed bogus assignment of uid to file fields.
  470. - #1223756 - Fix warnings with file_blob when file exists in file_managed.
  471. - #1216796 - Make sure file_replace argument exists.
  472. - #1195802 - Fixed prepareRow() support for MSSQL plugin.
  473. - #1210076 - Filled out parameter docs for MigrateFileFieldHandler::buildFileArray().
  474. - #1185046 - Wine example mistakenly said GROUP_CONCAT could only be used once.
  475. - #1202234 - Fix translatable field language handling.
  476. - #1184538 - Fixed term field allowed values in migrate_example.
  477. - #1181652 - Fixed MigrateDestinationTable to work on update.
  478. - #1174934 - Support multi-column keys for table_copy destination.
  479. - #1176790 - Prevent multiple handlers from messing up fields info.
  480. - #1169796 - Handle example upgrades if image field is missing.
  481. Migrate 2.1
  482. ===========
  483. API change:
  484. Any field handler prepare() or complete() methods you have defined must be changed
  485. to remove stdClass for the $entity argument. I.e., prepare(stdClass $entity, stdClass $row)
  486. should now be prepare($entity, stdClass $row).
  487. Features and enhancements
  488. - #1025754 - Added support for multi-value source keys to handleSourceMigration().
  489. - #1161584 - Added lookupSourceID() and lookupDestinationID() to MigrateMap.
  490. - #1017246 - Added support for running migrations from the dashboard.
  491. - #1004812 - Added schema-driven table destination plugin.
  492. - #1009708 - Added role destination plugin.
  493. - #737170 - Added support for field level callbacks.
  494. - #1005090 - Modified filefield property import to use JSON input.
  495. - #730980 - Added more detailed reporting on import.
  496. - #1142384 - Extended file field support to copy from remote URLs.
  497. - #1138096 - Added MigrateSourceMultiItems class for self-contained XML sources.
  498. - #1101586 - Add shortcut methods for adding several field mappings at once.
  499. - #1101592 - Replace --itemlimit with --limit, supporting time limits as well.
  500. - #1139080 - Added example and test for importing profile pictures over http.
  501. Bug fixes
  502. - #1161612 - Handle integer highwater marks properly.
  503. - #1159274 - Handle spaces in URLs for MigrateDestinationFile.
  504. - #1161812 - Added handling for NULL watchdog variables.
  505. - #1009708 - Fixed E_STRICT notice on MigrateDestinationRole::getKeySchema().
  506. - #1161590 - Made $migration optional for handleSourceMigration(), createStubWrapper(),
  507. lookupDestinationID().
  508. - #1161482 - Handle NULL source_field mappings.
  509. - #1156972 - Do not include message table in source queries.
  510. - #1155740 - Make remote file fetch HTTP version independent
  511. - #1037872 - Deal with updates with idlists when mapping nids directly.
  512. - #943546 - Make sure both slashes and backslashes are trimmed where necessary.
  513. - #1146366 - Fixed rollback of table destinations.
  514. - #1148474 - Enforce unique IDs in MigrateItemsXML.
  515. - #1132034 - Don't assume entity is a stdClass.
  516. - #753284 - Fixed systemOfRecord==DESTINATION updates for nodes and users.
  517. - #1142104 - Proper prefixing of tables when updating comment statistics.
  518. - #1136852 - Fixed cross-threaded test in preImport().
  519. - #1134858 - Improved validation for XML imports.
  520. - #1134300 - Add parameter $messages_only to MigrateMap::delete().
  521. - #1134506 - Removed obsolete views_alter() hook.
  522. - #1133096 - CSV source always processed last row, fix to clear currentRow.
  523. - #1124318 - Properly use source_field arguments for file field attributes.
  524. - #1133030 - Undefined constant in drush migrate-fields-destination.
  525. - #1128532 - Handle call to watchdog when Migration class not defined.
  526. - #1126108 - Fix undefined variables in XML error handling.
  527. - #1117602 - Bad counts reported on bulk rollback.
  528. - #1118480 - Document _name arguments to file fields.
  529. - #1108700 - Remove obsolete references to prepare().
  530. - #1107546 - Check file presence with is_file() instead of file_exists().
  531. - #1097136 - Replace list_number with list_integer and list_float in set of
  532. supported simple field types.
  533. - #1103042 - Rollback broken with multi-valued keys.
  534. Migrate 2.0
  535. ===========
  536. Features and enhancements (since first 2.0-dev)
  537. Added JSON source plugin.
  538. - #919108 - Add deleteDestination() for maps; cache migration list.
  539. - #1005090 - Support multiple values for file fields.
  540. - #996086 - Add prepareRollback and completeRollback methods for entities.
  541. - #1039882 - Pass client migration to stub creation. Note that $migration->values
  542. (the destination object being built) is now $migration->destinationValues - any
  543. migrations referencing this member will need to change.
  544. - #946350 - Accept arrays in sourceMigration();
  545. Let a node migration set node_revisions.uid. That's the 'last edited by' user
  546. - #989200 - Support "dynamic" migrations. Changes to be aware of:
  547. All modules implementing migration classes must now implement hook_migrate_api()
  548. (see migrate_migrate_api() for an example).
  549. Dependencies and sourceMigrations must now be expressed in terms of
  550. machine name rather than class name.
  551. MigrationBase::getInstance now takes a machine name rather than a class name.
  552. Migration class names are no longer required to end in 'Migration'.
  553. - #992898 - Pass options to source and destination constructors as arrays.
  554. File destinations (i.e., migrating directly to the file_managed table, with
  555. optional copying of the files themselves) are now supported.
  556. Allow migration of comment enable/disable.
  557. Check max_execution_time as well as memory_limit, for graceful exit when
  558. max_execution_time is in play.
  559. Add dedupe() method for a field mapping.
  560. Apply MigrateBase::timestamp() to comment created/changed
  561. Bug fixes
  562. - #867940 - Prevent overwriting of migrated files with common basenames.
  563. - #1072170 - Allow revision setting to be overridden.
  564. - #1073770 - Quietly skip missing files in MigrateFileFieldHandler.
  565. - #1079416 - postRollback called outside of rollback operation.
  566. - #1070894 - Apply tokens when saving files.
  567. - #1067918 - Static cache of migrations messes up simpletests.
  568. - #1053798 - Message meant for debug not marked 'debug'.
  569. - #1063926 - prepareRow() call missing from MigrateSourceList.
  570. - #1062200 - Validate arguments for getFieldLanguage().
  571. - #1061284 - Appropriately translate watchdog severities to migrate severities.
  572. - migrate_example error when auto_nodetitle module not present.
  573. - #1053798 - Missing 'debug' on showMessage.
  574. - #1053798 - Consistent use of error codes.
  575. - #1053526 - Machine names in drush commands now case-insensitive.
  576. - #914440 - Enhance multilingual support.
  577. - #1014648 - Defaulting of file field subfields.
  578. - #1037872 - Make sure is_new is off for previously migrated content.
  579. - #919706 - Fix drush migrate-descriptions command.
  580. - #1027468 - Limit map/message table name lengths.
  581. - #1045646 - Handle PHP memory_limit of -1.
  582. - #1050348 - Check map table existence in correct DB.
  583. - #1028824 - Errors during registry rebuild trigger fatal error.
  584. Fix highwater handling to deal with duplicate values.
  585. - #998604 - Fixed dedupe.
  586. - #998586 - Improved feedback for disabled migrations.
  587. - #972382 - Fix MigrateDestinationTableCopy.
  588. - #962120 - Support idlist on rollback.
  589. - #1017256 - Document case-sensitivity in beer.inc.
  590. - #1013844 - Better error handling in getInstance().
  591. - #1008228 - migrate_example broken by list changes in D7 RC3.
  592. - #1006272 - Remove lengths on int fields in schema (breaks Postgres)
  593. - #1005030 - Replace eval() with proper call_user_func().
  594. - #1005360 - Skip .test files in registry scan
  595. - #1004268 - Don't munge date separators
  596. - prepareRow() hook skips current row only if boolean FALSE is returned.
  597. - #989622 - Fix undefined variable in MigrateDestinationNode::import().
  598. - #984294 - Make migrate dashbard a local task.
  599. needs_update => needs-update to match drush conventions.
  600. - #959400 - Better way to get vid for vocabulary.
  601. - #984336 - Additional fields and vocabularies not reported on migration info page
  602. - #990960 - Initialize fields array for profiles
  603. - #993684 - hook_requirements should always return array.
  604. - #983968 - Bogus settings of ->uid
  605. - #984294 - Migration info pages are blank