Refactoring TODO list: ============================= Immediate: ========== - Fix all of the TODOs involving user notification - Figure out why the column list dialog doesn't have a scrollbar Short Term: ========== - For dropping columns allow the user to specify cascade / restrict for dbs that support it (like derby) - Support quoted and qualified identifiers in the old/initial refactorings like Add/Modify/Remove Column and Add/Drop Primary Key. (use DatabaseObjectQualifier and SqlGenerationPreferences, for examples: look into the new refactorings and the new HibernateDialect methods from version 0.20) - Allow the user to set some general refactoring preferences. (Qualify Identifiers, Quote Identifiers, etc.) - Give the user some kind of feedback if a refactoring was successful. - Give the user some kind of feedback on the progress of a complex refactoring like Add Lookup Table or Merge Table/Column. (maybe a fancy ProgressDialog?) Long Term: ========== - "Create Table" refactoring - The rest of the dialects. - Support operations that aren't directly support by the database (e.g. HADB can't add/drop columns - simulate by creating new table and copying data - maybe using dbcopy?) Possible Additional Refactorings: (Source: Refactoring Databases: Evolutionary Database Design, 978-0-321-29353-4) ======================== Structural Refactorings: - Introduce Calculated Column - Introduce Surrogate Key - Move Column - Replace Large Object (LOB) With Table - Replace Column - Replace One-to-Many With Associative Table - Replace Surrogate Key With Natural Key - Split Column - Split Table Data Quality Refactorings: - Apply Standard Codes - Apply Standard Type - Consolidate Key Strategy - Introduce Common Format - Move Data - Replace Type Code With Property Flags Referential Integrity Refactorings: - Add Trigger For Calculated Column - Introduce Cascading Delete - Introduce Trigger For History Architectural Refactorings: - Add CRUD Methods - Add Mirror Table - Add Read Method - Encapsulate Table With View - Introduce Calculation Method - Introduce Read-Only Table - Migrate Method From Database - Migrate Method To Database - Replace Method(s) With View - Replace View With Method(s) - Use Official Data Source