-
Notifications
You must be signed in to change notification settings - Fork 19
Design Requirements
ulisespulido edited this page Nov 10, 2011
·
3 revisions
AutoPatch was designed with a few very simple requirements in mind.
- Patches should execute before any server logic
- This is important, or the application logic couldn't trust the state of the external systems
- AutoPatch must enforce a total natural ordering on all patches.
- This allows a developer to depend on the results of previous patches, for instance a patch can use database tables defined in patches that were executed previously
- AutoPatch must ensure that each patch is applied once and only once
- Having them apply multiple times would mean the patch author could never trust the initial state of the database, making patch development very difficult
- AutoPatch should be able to globally order patches that execute against multiple external systems
- AutoPatch should be capable of executing post-patching maintenance after patching (things like recompiling pl/sql, etc)
- AutoPatch should be capable of executing the same patch across multiple databases with the same schema
- AutoPatch should be capable of running in a read only way, showing what it would do, but not changing anything
- AutoPatch should be able to support multiple migration strategies.
- Developers could be able to add their own migration strategy to AutoPatch.
- Overview
- Design Requirements
- Basic Design
- Detailed Design
- How to integrate AutoPatch with a web application
- How to integrate AutoPatch with your development cycle
- How to implement a patch
- How to extend AutoPatch with new patch types
- How to rollback patches
- How to migrate from AutoPatch 1.1 to AutoPatch 1.2
- How to Migrate to AutoPatch 1.3