Uploaded image for project: 'COmanage'
  1. COmanage
  2. CO-1691

Replace ADODB For Database Schema Management

    XMLWordPrintable

Details

    Description

      ADOdb XML Schema (axmls) has proven to be buggy, and presents a fairly large footprint for the relatively limited functionality we use. Replace axmls/adodb with something else, possibly locally written. Requirements include:

      1. Parse a JSON representation of the schema and apply it to the selected database. The JSON document is always the desired end state of the database schema, and does not represent interim migrations.
      2. Install as a Cake plugin (or vendor library) so it can be reused across Registry and Match.
      3. Support relatively recent versions of Postgres and MariaDB/MySQL.
      4. Do not drop and re-create an index unless the definitions of the attributes used in constructing the index have changed (including if an attribute is dropped).
      5. Properly support database prefixes (ie: "cm_") in foreign key constraint definitions. (ie: REFERENCES should probably be a first order keyword, and not implemented as a CONSTRAINT.)
      6. Designate removed tables for deletion. (Or should these be preserved for historical purposes?)
      7. Perhaps automatically name indexes to avoid copy/paste errors.
      8. Perhaps allow for "shortcut" notation, eg to define changelog attributes, created/modified, and id.
      9. Continue to support plugin schemas (though those can be migrated to the JSON representation by the plugin owner).
      10. Possibly better support ChangelogBehavior somehow. eg: When a column is dropped from active use, it must still be maintained in the table for historical purposes. Perhaps there should be some sort of automagic archival table? (Maybe beyond the scope of this RFE.)

      Attachments

        Issue Links

          Activity

            People

              benn.oshrin@at.internet2.edu Benn Oshrin (internet2.edu)
              benn.oshrin@at.internet2.edu Benn Oshrin (internet2.edu)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: