CHANGELOG.txt 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. Migrate 2.4
  2. ===========
  3. IMPORTANT: The file migration support (both MigrateDestinationFile and
  4. the file field handler) has been completely refactored since Migrate 2.3 - if you
  5. are importing files as part of your migration, you MUST change your migrations
  6. to properly use the new implementation. See http://drupal.org/node/1540106 for
  7. details on how to use the new handlers and destination.
  8. Features and enhancements
  9. - #1606586 - Add activeUrl public method to MigrateSourceXML.
  10. Bug fixes
  11. - #1614318 - MigrateFileUri failed to pass file object through.
  12. - #1601974 - Remove percent sign fix-up, leave to particular application.
  13. - #1600912 - Base constructor was undermining UI override of displayFunction.
  14. - #1595056 - Handle empty arguments from migrate_status table.
  15. - #1595166 - Support multiple source keys in MigrateList.
  16. Migrate 2.4 Release Candidate 1
  17. ===============================
  18. Features and enhancements
  19. - #1587842 - Remove sample CSV files from migrate project.
  20. - #1152878 - drush migrate-analyze command, for source data analysis.
  21. - #1587566 - Support escape option for CSV sources on PHP 5.3.
  22. - #1189328 - UI option to ignore dependencies.
  23. - #1016452 - Support migrating user role assignments by name.
  24. - #653636 - Add migrate-messages command to dump message table.
  25. Bug fixes
  26. - #919108 - Cleaner error-handling when updating destinations that don't exist.
  27. - #1574502 - Coder review, remove dead code.
  28. - #1570536 - Undefined property in term.inc.
  29. Migrate 2.4 Beta 1
  30. ==================
  31. Features and enhancements
  32. - #1428166 - Make message columns sortable.
  33. - #1459888 - Removed deprecated source count(), showMessage(), setOutputFunction().
  34. - #1528916 - Link field descriptions to drupal.org documentation.
  35. - #722686 - Support for node statistics.
  36. - #1299646 - Enforce dependencies on rollback.
  37. - #1328408 - Support --group on drush migrate-status.
  38. - #1402822 - Cleaner handling of exceptions from source plugins.
  39. - #1240928 - File handling completely refactored - see note above.
  40. - #1279778 - Improved method for mapping options and subfields.
  41. - #1403044 - Added menu destination plugins.
  42. - #1350284 - Visually group migrations by group in drush.
  43. Bug fixes
  44. - #1569612 - skip_empty should only skip NULL values.
  45. - #1561448 - Proper handling of is_new for users.
  46. - #1205278 - Don't multiply-increment usage counts when preserving files; remove
  47. file_usages on uninstall.
  48. - #1438282 - Handle errors thrown when getting counts.
  49. - #1358318 - Fix dedupe() overdeduping on --update.
  50. - #1538046 - Give highwater marks a chance at preparation before using them.
  51. - #1408248 - Handle errors in complete() cleanly.
  52. - #1541882 - Make sure displayFunction is set before calling it.
  53. - #1529362 - Make proper check if previously imported.
  54. - #1537076 - Apply languages to each value in a multi-value field.
  55. - #1542922 - Fix XML parsing bug.
  56. - #1538508 - Fix notice when mapping parent_name.
  57. - #1537352 - Check limits and status before next().
  58. - #1540120 - Zero not working as defaultValue.
  59. - #1508654 - MigrateSourceSQL needs to respect join aliases.
  60. - #1518076 - UI side of subfield handling.
  61. - #1480762 - Fix cross-database joins to map table.
  62. - #1520688 - setDisplayFunction needs to be static.
  63. - #1518064 - Upgrade needs to check field existence.
  64. - #1518008 - Upgrade uses obsolete db_column_exists API.
  65. - #1308268 - Term migration should link to pre-existing terms.
  66. Migrate 2.3
  67. ===========
  68. Features and enhancements
  69. - #1315910 - Added migrate-deregister drush command.
  70. Bug fixes
  71. - #1378114 - Handle case-sensitive term name variations properly.
  72. - #1450950 - Convert user datetimes values to timestamps.
  73. - #1437208 - Handle malformed CSV files quietly.
  74. - #1413350 - Support invoking subprocesses under Drush 5.
  75. - #1404732 - Properly call taxonomy_term handler fields() method.
  76. Migrate 2.3 RC1
  77. ===============
  78. Features and enhancements
  79. - #1437076 - Make Migration class field mapping methods public.
  80. - #1430528 - Document importance of migrating term parents first.
  81. - #1418126 - Use node_delete_multiple on migrate-wipe.
  82. - #1424632 - Improve user migration performance by reducing hash count.
  83. - #1414616 - Automatically update migration arguments.
  84. - #1364326 - Default --limit option to items.
  85. - #1337640 - Properly optimize the SQL source query for highwater marks.
  86. - #1366588 - Source plugin support has been refactored to put more of the common
  87. processing in the base class. When implementing a source plugin,
  88. implement performRewind() and getNextRow().
  89. - #519906 - Added support for the core poll module (choices and votes).
  90. - #1355940 - Track all source rows in the map table.
  91. - #1358650 - Truncate text fields according to configured max_length.
  92. - #941440 - Autodetection of source fields when unspecified.
  93. - #1341776 - Add option to skip source counting.
  94. - #1342936 - Pass source key in calls to Migration::createStub().
  95. - #1335110 - Automatically lowercase MD5 passwords.
  96. - #1331912 - Catch exception due to skipped beginProcess().
  97. - #1337810 - Documented hooks in migrate.api.php.
  98. - #1342322 - Added default implementation of prepareRow(), simplifying source plugins.
  99. - #1336534 - Added MigrateSourceXML for efficient handling of large XML files.
  100. - #1330552 - Provide more detail on bad field mappings.
  101. - #1321078 - Display incomplete dependencies in the error message.
  102. - #1321062 - Simple base class for field handlers.
  103. - #1314448 - Added tnid to node destination handler.
  104. - #1231492 - Added source handler for retrieving content from file directories.
  105. - #1290706 - Centralize loading of XML.
  106. - #1295040 - Support --update functionality in UI.
  107. - #1304444 - Added static displayMessage(), deprecating showMessage().
  108. - #1290706 - Centralize loading of XML.
  109. - #1254398 - Prevent accidental emailing during migration.
  110. Bug fixes
  111. - #1447368 - Handle purely numeric PHP memory_limit.
  112. - #1432802 - Default $options to prevent PHP 5.4 error.
  113. - #1333656 - Remove content type/fields when uninstalling migrate_example_baseball.
  114. - #1416012 - Cleanly handle NULL source key values in saveIDMapping().
  115. - #1419086 - Better error handling in MigrateXMLReader::next().
  116. - #1422114 - ID list array must be imploded for queries.
  117. - #1372204 - Fix loss of pictures when updating users.
  118. - #1364034 - Add cache_key option to sources, for disambiguation.
  119. - #1354162 - Make sure messages are retrieved from the right connection.
  120. - #1352648 - Update mode reapplied on each batch in UI.
  121. - #1349246 - Postgres error updating migrate_log.
  122. - #1342686 - Generalized needs-update support.
  123. - #1341598 - filename/filemime not set in file_link/file_blob cases.
  124. - #1342736 - drush options don't need -- prefix.
  125. - #1340204 - MigrateDestinationFile::prepare() didn't call parent::prepare().
  126. - #1336880 - Fix XPath handling in MigrateItemsXML::getIDSFromXML.
  127. - #1334546 - Validate compound keys passed to handleSourceMigration().
  128. - #1305338 - Corrected type-hint in MigrateSourceSQL constructor.
  129. - #1305910 - MigrateDestinationTable now tracks inserted/updated records.
  130. - #1284592 - Fixed error on empty term parents.
  131. - #1300258 - Fixed error on unfulfilled term references.
  132. - #1292462 - Group missing from drush options.
  133. - #1290122 - Force destinations to implement __toString().
  134. - #1290120 - Warnings updating users if roles not set.
  135. - #1290118 - Warning in MigrateItemJSON::getItem()
  136. - #1133096 - Failure to clear currentRow in MigrateSourceMultiItems.
  137. Migrate 2.2
  138. ===========
  139. Bug fixes
  140. - #1265514 - Fixed error message for failed XML load in MigrateItemsXML.
  141. Migrate 2.2 RC2
  142. ===============
  143. Features and enhancements
  144. - #1240928 - Generalize file handlers, to ease media module support.
  145. - #1226768 - Improved exception handling.
  146. - #1230294 - Get correct count of CSV with embedded newlines.
  147. - #1185632 - Handle (potentially multiple) headers in CSV source plugin.
  148. Bug fixes
  149. - #1231398 - Add map data to row in Oracle source plugin.
  150. - #1225636 - File field: fixed warnings, added docs.
  151. - #1227130 - On import, clear messages before applyMappings().
  152. - #1195802 - Fixed SQL Server problem handling end of batch; brought Oracle/SQL
  153. Server implementations in line with each other.
  154. - #1205278 - Fixed file entity rollback to preserve files when requested.
  155. - #1223468 - Make sure getIDsFromXML always returns an array.
  156. - #1223734 - Fixed bogus assignment of uid to file fields.
  157. - #1223756 - Fix warnings with file_blob when file exists in file_managed.
  158. - #1216796 - Make sure file_replace argument exists.
  159. - #1195802 - Fixed prepareRow() support for MSSQL plugin.
  160. Migrate 2.2 RC1
  161. ===============
  162. Features and enhancements
  163. - #1210152 - Improved error messages on file field migration.
  164. - #1212818 - migrate_ui support for one-step rollback-and-import.
  165. - #1218244 - Support for is_new for users.
  166. - #1216796 - Use file_destination() to generate destination filespec.
  167. - #719650 - Implemented ability to assign migrations to groups, and run by group.
  168. - #1201762 - Implemented built-in caching for source counts, and flag to enable it.
  169. - #1205278 - Added preserve_files argument to MigrateFileFieldHandler.
  170. - #1205278 - Added preserve_files option to MigrateDestinationFile.
  171. - #1078368 - Implemented create_term argument for term references, to lazy-create terms.
  172. - #1199150 - Added file_fid function to file field migration.
  173. - #1195802 - Added prepareRow() support for MSSQL plugin.
  174. - #1195784 - Added verification of required extension to MSSQL plugin.
  175. - #1180188 - Added ability to save BLOB data to file fields and file entities.
  176. - #1181136 - Provided mechanism to handle incoming MD5-encrypted passwords.
  177. - #1181720 - Add item/second limiting to UI.
  178. - #1181826 - Implemented hook_hook_info(), so implementing modules can define
  179. hook_migrate_api() in example.migrate.inc.
  180. - #1179464 - Added capability of disabling handlers.
  181. - #1175094 - Added support for field handler complete() methods.
  182. - #1176930 - Renamed migrate-descriptions to migrate-mappings, enhanced to export to CSV.
  183. - #1169724 - Implemented source plugin for Oracle.
  184. Bug fixes
  185. - #1210076 - Filled out parameter docs for MigrateFileFieldHandler::buildFileArray().
  186. - #1185046 - Wine example mistakenly said GROUP_CONCAT could only be used once.
  187. - #1202234 - Fix translatable field language handling.
  188. - #1184538 - Fixed term field allowed values in migrate_example.
  189. - #1181652 - Fixed MigrateDestinationTable to work on update.
  190. - #1174934 - Support multi-column keys for table_copy destination.
  191. - #1176790 - Prevent multiple handlers from messing up fields info.
  192. - #1169796 - Handle example upgrades if image field is missing.
  193. Migrate 2.1
  194. ===========
  195. Features and enhancements
  196. - #1025754 - Added support for multi-value source keys to handleSourceMigration().
  197. - #1161584 - Added lookupSourceID() and lookupDestinationID() to MigrateMap.
  198. Bug fixes
  199. - #1161612 - Handle integer highwater marks properly.
  200. - #1159274 - Handle spaces in URLs for MigrateDestinationFile.
  201. - #1161812 - Added handling for NULL watchdog variables.
  202. - #1009708 - Fixed E_STRICT notice on MigrateDestinationRole::getKeySchema().
  203. - #1161590 - Made $migration optional for handleSourceMigration(), createStubWrapper(),
  204. lookupDestinationID().
  205. - #1161482 - Handle NULL source_field mappings.
  206. - #1156972 - Do not include message table in source queries.
  207. Migrate 2.1 Beta 1
  208. ==================
  209. API change:
  210. Any field handler prepare() or complete() methods you have defined must be changed
  211. to remove stdClass for the $entity argument. I.e., prepare(stdClass $entity, stdClass $row)
  212. should now be prepare($entity, stdClass $row).
  213. Features and enhancements
  214. - #1017246 - Added support for running migrations from the dashboard.
  215. - #1004812 - Added schema-driven table destination plugin.
  216. - #1009708 - Added role destination plugin.
  217. - #737170 - Added support for field level callbacks.
  218. - #1005090 - Modified filefield property import to use JSON input.
  219. - #730980 - Added more detailed reporting on import.
  220. - #1142384 - Extended file field support to copy from remote URLs.
  221. - #1138096 - Added MigrateSourceMultiItems class for self-contained XML sources.
  222. - #1101586 - Add shortcut methods for adding several field mappings at once.
  223. - #1101592 - Replace --itemlimit with --limit, supporting time limits as well.
  224. - #1139080 - Added example and test for importing profile pictures over http.
  225. Bug fixes
  226. - #1155740 - Make remote file fetch HTTP version independent
  227. - #1037872 - Deal with updates with idlists when mapping nids directly.
  228. - #943546 - Make sure both slashes and backslashes are trimmed where necessary.
  229. - #1146366 - Fixed rollback of table destinations.
  230. - #1148474 - Enforce unique IDs in MigrateItemsXML.
  231. - #1132034 - Don't assume entity is a stdClass.
  232. - #753284 - Fixed systemOfRecord==DESTINATION updates for nodes and users.
  233. - #1142104 - Proper prefixing of tables when updating comment statistics.
  234. - #1136852 - Fixed cross-threaded test in preImport().
  235. - #1134858 - Improved validation for XML imports.
  236. - #1134300 - Add parameter $messages_only to MigrateMap::delete().
  237. - #1134506 - Removed obsolete views_alter() hook.
  238. - #1133096 - CSV source always processed last row, fix to clear currentRow.
  239. - #1124318 - Properly use source_field arguments for file field attributes.
  240. - #1133030 - Undefined constant in drush migrate-fields-destination.
  241. - #1128532 - Handle call to watchdog when Migration class not defined.
  242. - #1126108 - Fix undefined variables in XML error handling.
  243. - #1117602 - Bad counts reported on bulk rollback.
  244. - #1118480 - Document _name arguments to file fields.
  245. - #1108700 - Remove obsolete references to prepare().
  246. - #1107546 - Check file presence with is_file() instead of file_exists().
  247. - #1097136 - Replace list_number with list_integer and list_float in set of
  248. supported simple field types.
  249. - #1103042 - Rollback broken with multi-valued keys.
  250. Migrate 2.0
  251. ===========
  252. No changes since RC3.
  253. Migrate 2.0 Release Candidate 3
  254. ===============================
  255. Features and enhancements
  256. Added JSON source plugin.
  257. Bug fixes
  258. - #867940 - Prevent overwriting of migrated files with common basenames.
  259. - #1072170 - Allow revision setting to be overridden.
  260. - #1073770 - Quietly skip missing files in MigrateFileFieldHandler.
  261. - #1079416 - postRollback called outside of rollback operation.
  262. - #1070894 - Apply tokens when saving files.
  263. - #1067918 - Static cache of migrations messes up simpletests.
  264. - #1053798 - Message meant for debug not marked 'debug'.
  265. - #1063926 - prepareRow() call missing from MigrateSourceList.
  266. - #1062200 - Validate arguments for getFieldLanguage().
  267. - #1061284 - Appropriately translate watchdog severities to migrate severities.
  268. Migrate 2.0 Release Candidate 2
  269. ===============================
  270. Bug fixes
  271. - migrate_example error when auto_nodetitle module not present.
  272. - #1053798 - Missing 'debug' on showMessage.
  273. Migrate 2.0 Release Candidate 1
  274. ===============================
  275. Features and enhancements
  276. - #919108 - Add deleteDestination() for maps; cache migration list.
  277. - #1005090 - Support multiple values for file fields.
  278. - #996086 - Add prepareRollback and completeRollback methods for entities.
  279. - #1039882 - Pass client migration to stub creation. Note that $migration->values
  280. (the destination object being built) is now $migration->destinationValues - any
  281. migrations referencing this member will need to change.
  282. - #946350 - Accept arrays in sourceMigration();
  283. Let a node migration set node_revisions.uid. That's the 'last edited by' user
  284. Bug fixes
  285. - #1053798 - Consistent use of error codes.
  286. - #1053526 - Machine names in drush commands now case-insensitive.
  287. - #914440 - Enhance multilingual support.
  288. - #1014648 - Defaulting of file field subfields.
  289. - #1037872 - Make sure is_new is off for previously migrated content.
  290. - #919706 - Fix drush migrate-descriptions command.
  291. - #1027468 - Limit map/message table name lengths.
  292. - #1045646 - Handle PHP memory_limit of -1.
  293. - #1050348 - Check map table existence in correct DB.
  294. - #1028824 - Errors during registry rebuild trigger fatal error.
  295. Fix highwater handling to deal with duplicate values.
  296. - #998604 - Fixed dedupe.
  297. - #998586 - Improved feedback for disabled migrations.
  298. - #972382 - Fix MigrateDestinationTableCopy.
  299. - #962120 - Support idlist on rollback.
  300. - #1017256 - Document case-sensitivity in beer.inc.
  301. - #1013844 - Better error handling in getInstance().
  302. - #1008228 - migrate_example broken by list changes in D7 RC3.
  303. Migrate 2.0 Beta 3
  304. ==================
  305. Features and enhancements
  306. - #989200 - Support "dynamic" migrations. Changes to be aware of:
  307. All modules implementing migration classes must now implement hook_migrate_api()
  308. (see migrate_migrate_api() for an example).
  309. Dependencies and sourceMigrations must now be expressed in terms of
  310. machine name rather than class name.
  311. MigrationBase::getInstance now takes a machine name rather than a class name.
  312. Migration class names are no longer required to end in 'Migration'.
  313. - #992898 - Pass options to source and destination constructors as arrays.
  314. File destinations (i.e., migrating directly to the file_managed table, with
  315. optional copying of the files themselves) are now supported.
  316. Allow migration of comment enable/disable.
  317. Check max_execution_time as well as memory_limit, for graceful exit when
  318. max_execution_time is in play.
  319. Add dedupe() method for a field mapping.
  320. Apply MigrateBase::timestamp() to comment created/changed
  321. Bug fixes
  322. - #1006272 - Remove lengths on int fields in schema (breaks Postgres)
  323. - #1005030 - Replace eval() with proper call_user_func().
  324. - #1005360 - Skip .test files in registry scan
  325. - #1004268 - Don't munge date separators
  326. - prepareRow() hook skips current row only if boolean FALSE is returned.
  327. - #989622 - Fix undefined variable in MigrateDestinationNode::import().
  328. - #984294 - Make migrate dashbard a local task.
  329. needs_update => needs-update to match drush conventions.
  330. - #959400 - Better way to get vid for vocabulary.
  331. - #984336 - Additional fields and vocabularies not reported on migration info page
  332. - #990960 - Initialize fields array for profiles
  333. - #993684 - hook_requirements should always return array.
  334. - #983968 - Bogus settings of ->uid
  335. Migrate 2.0 Beta 2
  336. ==================
  337. Bug fixes
  338. - #984294 - Migration info pages are blank
  339. Migrate 2.0 Beta 1
  340. ==================
  341. Version 2 of the Migrate module is an entirely new implementation - it is
  342. pointless to list changes since Migrate 1.