Skip to content
  • Christian Kuhn's avatar
    [FEATURE] Auto create management DB fields from TCA ctrl · 7b2319ff
    Christian Kuhn authored and Benni Mack's avatar Benni Mack committed
    Adds a class that auto creates TYPO3 "management" related database
    columns and indexes based on TCA 'ctrl' information without having
    them specified in ext_tables.sql. The feature .rst file outlines
    field details.
    
    Goals:
    * Save extension developers time.
    * Less copy+paste issues and different general fields definitions.
    * Reduce number of boilerplate fields in ext_tables.sql.
    * Bring schema of management fields under core control.
    
    Non goals:
    * No full substitution of ext_tables.sql by TCA: "Business"
      fields from 'columns' are NOT created automatically. This
      would require further thoughts and code disentangling.
    * No new extension API.
    * No "migration" approach or similar.
    
    Notable patch details:
    * The patch is a revamped version of issue #81234 that has been
      abandoned. As requested in the review of #81234, the code now
      hooks in after ext_tables.sql has been parsed into the doctrine
      schema.
    * Field defintions of ext_tables.sql take precedence, auto fields
      are only added if ext_tables.sql does not define a column or index.
      This makes the patch fully backwards compatible.
    * No deprecation for obsolete field definitions in ext_tables.sql
      is logged.
    * Many core fields are aligned to a central definition and slightly
      change. For instance "uid" is now always an unsigned int.
    * Reduce all core's ext_tables.sql files as well as the functional
      testing related ext_tables.sql files down to the business fields
    * A relatively huge series of test adaptions: Especially the
      ext:impexp related functionals now create dumps with differently
      sorted fields - This is no problem during import.
    * Field t3_origuid of sys_file_reference has never been registered
      in TCA as ['ctrl']['origUid'], is thus unused and removed as obsolete.
    * The extension manager no longer applies possible destructive changes,
      it only adds missing columns and tables when loading / updating
      extensions. It however considers *all* ext_tables.sql files, not only
      the one the extension in question provides. See the important .rst
      file for details.
    
    Change-Id: I640a7c7da3b63bac21a71102f253aa2d1bef4391
    Resolves: #85160
    Related: #81234
    Releases: master
    Reviewed-on: https://review.typo3.org/57121
    
    
    Tested-by: default avatarTYPO3com <no-reply@typo3.com>
    Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    Reviewed-by: default avatarWouter Wolters <typo3@wouterwolters.nl>
    Reviewed-by: default avatarBenni Mack <benni@typo3.org>
    Tested-by: default avatarBenni Mack <benni@typo3.org>
    7b2319ff