Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-1193

Auto load schema on startup

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0M5
    • 3.0M6, 3.0
    • Core Library, Modeler
    • None

    Description

      This feature would allow Cayenne to bootstrap the DB schema on startup if needed. I can see the following options for schema update:

      1. Skip schema update. This is the current behavior.
      2. Create if no existing tables are found. This is the most reliable but less powerful option. It will skip schema creation if at least one of the tables modeled in Cayenne already exist in DB. No exceptions will be thrown (maybe just an INFO log message). This will use DbGenerator.
      3. Create if no existing tables are found ; throw if partial schema detected. This will check for schema changes compared to the model and throw an exception if differences are found in the tables mapped in the DataMap (i.e. if there are more tables than mapped in Cayenne, it will NOT throw). This will use the merge package.

      (I wonder if "4. Attempt to merge schema changes" makes any sense at all)

      This will have a modeler component - a dropdown at the DataNode level listing schema generation strategies. It will be saved in the XML as "schema-update-strategy" attribute for the "node" element.

      Runtime component will consist of strategy instantiation, and an intercept of DB operations run through the DataNode, passing it to an appropriate strategy. Still undecided whether the strategy should be a DataNode attribute or a DbAdapter attribute (prolly DataNode).

      Attachments

        1. SchemaUpdateStrategy.txt
          60 kB
          Olga Tkacheva
        2. SchemaUpdateStrategy1.txt
          63 kB
          Olga Tkacheva
        3. SchemaUpdateStrategy2.txt
          64 kB
          Olga Tkacheva
        4. SchemaUpdateStrategy4.txt
          63 kB
          Olga Tkacheva
        5. SchemaUpdateStrategy5.txt
          63 kB
          Olga Tkacheva
        6. SchemaUpdateStrategy6.txt
          64 kB
          Olga Tkacheva
        7. SchemaUpdateStrategy7.txt
          12 kB
          Olga Tkacheva
        8. SchemaUpdateStrategy8.txt
          13 kB
          Olga Tkacheva
        9. StrategyAnalyser.txt
          16 kB
          Olga Tkacheva
        10. StrategyAnalyzer.txt
          21 kB
          Olga Tkacheva
        11. StrategyAnalyzer.txt
          22 kB
          Olga Tkacheva

        Activity

          People

            andrus Andrus Adamchik
            andrus Andrus Adamchik
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: