| Commit | Line | Data |
|---|---|---|
| a2fcb2cc MR |
1 | Differences visible to users/implementors: |
| 2 | ||
| a2fcb2cc MR |
3 | Field handlers have no $field_info parameter in D6 |
| 4 | ||
| 5 | D6 has no machine names for vocabularies - the D6 migrate module will basically | |
| 6 | generate one from the the user-visible name (lower-case, spaces=>underscores), | |
| 7 | there is a small risk of collision as a result if vocabulary names differ only | |
| 8 | in punctuation and/or case. | |
| 9 | ||
| a2fcb2cc | 10 | |
| 955920f0 | 11 | Conventions to make porting changes between Drupal 6 and Drupal 7 easier: |
| 869a5c98 MR |
12 | |
| 13 | Try to always use specific DBTNG functions such as db_select() instead of the more | |
| 14 | general db_query(), which needs to be renamed to dbtng_query() under Drupal 6. | |
| 15 | ||
| 869a5c98 | 16 | |
| 955920f0 MR |
17 | TODOs for initial backport to Drupal 6: |
| 18 | ||
| a2fcb2cc MR |
19 | Most of the visible differences above can probably be eliminated |
| 20 | MigrateDestinationTerm constructor takes name instead of machine name as a | |
| 21 | parameter, should use a generated machine name. | |
| 22 | node.inc: Retrieve attached fields in fields() | |
| 955920f0 | 23 | comment.inc: Changes needed for D6 comment_save() (form assumptions) |
| 955920f0 | 24 | fields.inc: File API changes |
| a2fcb2cc MR |
25 | image field support |
| 26 | ||
| 27 | ||
| 28 | D6/D7 differences: | |
| 29 | ||
| 30 | *.info: | |
| 31 | Core/PHP requirements | |
| 32 | ||
| 33 | *.install: | |
| 34 | D6 requires explicit install/uninstall of schema | |
| b266813a | 35 | D6 implements hook_requirements() to verify autoload 2 is present. |
| a2fcb2cc MR |
36 | |
| 37 | migrate.drush.inc: | |
| 38 | Rollback/wipe need to run as uid 1 in D6 | |
| a2fcb2cc MR |
39 | |
| 40 | migrate.info: | |
| cf8d20b3 | 41 | D6 dependent on autoload/dbtng |
| a2fcb2cc MR |
42 | |
| 43 | migrate.install: | |
| 44 | D7 update functions | |
| 45 | ||
| 46 | migrate.module: | |
| 47 | Includes d7.inc | |
| 48 | migrate_field_handler_invoke_all() has no $field_info parameter in D6 | |
| 49 | migrate_watchdog() disabled in D6 (review) | |
| 50 | ||
| 51 | includes/base.inc: | |
| b266813a | 52 | No second chance (drupal_static_reset) on low memory in D6 |
| a2fcb2cc MR |
53 | |
| 54 | plugins/destinations/comment.inc: | |
| 55 | Field differences: timestamp vs. created/changed | |
| 56 | No fields on comments in D6 | |
| 57 | Differences in node_comment_statistics query | |
| 58 | Table name (comments/comment) | |
| 59 | comment_save takes array in D6. | |
| 60 | ||
| 61 | plugins/destinations/fields.inc: | |
| 62 | Handlers have both $instance and $field_info on D7, $instance only on D6 | |
| 63 | Field arrays keyed by language on D7 only | |
| 64 | Fields only apply to nodes in D6 | |
| 65 | No taxonomy_term_reference in D6 | |
| 66 | ||
| 67 | plugins/destinations/node.inc: | |
| 68 | No is_new in D6. | |
| 69 | Teaser field in D6 only. | |
| 70 | Body is a field API field in D7. | |
| 71 | No node_object_prepare() in D6. | |
| 72 | ||
| 73 | plugins/destinations/term.inc: | |
| 74 | Fields only apply to nodes in D6. | |
| 75 | Taxonomy API differences | |
| 76 | ||
| 77 | plugins/destinations/user.inc: | |
| 78 | Fields only apply to nodes in D6. | |
| 79 | ||
| 80 | plugins/sources/sqlmap.inc: | |
| 81 | db_table_exists/dbtng_table_exists | |
| 82 | ||
| 83 | migrate_example/beer.inc: | |
| 84 | Destination term specified by visible name instead of (non-existent) machine | |
| 85 | name on D6. | |
| 86 | No fields on users in D6. | |
| 87 | Node IDs not preserved in D6. | |
| 88 | Teaser is its own field in D6, not a body argument. | |
| 89 | ||
| 90 | migrate_example/beer.install.inc: | |
| 91 | No image field in D6 (yet) | |
| 92 | Taxonomy API differences. | |
| 93 | Vocabulary not a field in D6. | |
| 94 | Difference in node_type_save parameter. | |
| 95 | No node_add_body_field() in D6. | |
| 96 | No user fields (gender, favs) in D6. | |
| 97 | Field/CCK API differences. | |
| 98 | ||
| 99 | migrate_example/migrate_example.info: | |
| 100 | D6 dependent on content | |
| 101 | ||
| 102 | migrate_example/migrate_example.install: | |
| 103 | No DRUPAL_ROOT for required files in D6 | |
| 104 | No API for format creation in D6 | |
| 105 | ||
| 106 | migrate_example/wine.inc: | |
| 107 | Destination term specified by visible name instead of (non-existent) machine | |
| 108 | name on D6. | |
| 109 | No fields on users in D6. | |
| 110 | Teaser is its own field in D6, not a body argument. | |
| 111 | Comment field differences | |
| 112 | ||
| 113 | migrate_example/wine.install.inc: | |
| 114 | No image field in D6 (yet) | |
| 115 | Taxonomy API differences. | |
| 116 | Vocabulary not a field in D6. | |
| 117 | Difference in node_type_save parameter. | |
| 118 | No node_add_body_field() in D6. | |
| 119 | No user fields (gender, favs) in D6. | |
| 120 | Field/CCK API differences. | |
| 121 | ||
| 122 | migrate_ui/migrate_ui.module: | |
| 123 | hook_perm() vs. hook_permission() | |
| 124 | ||
| 125 | migrate_ui/migrate_ui.pages.inc: | |
| 126 | D6 uses drupal_get_form(), D7 returns form array directly | |
| 127 | D6 uses theme_table(), D7 uses '#theme' => 'table', ditto for item_list | |
| 128 | No vertical tabs in D6 | |
| 129 | #value vs. #markup | |
| 130 | Classes passed as arrays in D7 |