LiquiBase EJB Integration Plug-in for IntelliJ IDEA.
Compares LiquiBase Database ChangeLog with EJB entity model providing inspections and intentions adding to ChangeLog.
Source available at https://github.com/marcusn/LiquibaseEjb
* Add a new entity -> inspection to add liquibase addTable
* Add a new entity field -> inspection to add liquibase addColumn
* Change type of field -> inspection to add liquibase modifyColumn
* Rename field -> dialog to add liquibase renameColumn.
* Liquibase EJB facet to configure and create changelog file.
* Context sensentive completion of table and column names within a changelog file.
* Tool window with schema as would be created by liquibase changelog as well as EJB model.
Recent change notes
* IDEA 11
* IDEA 10
* Fix for IDEA hanging on startup
* IDEA 8.1 Version
* [LBEJB-72] - Wrong naming of @ManyToMany columns when they start with entity names
* [LBEJB-73] - TIMESTAMP is used wrongly instead of DATETIME
* [LBEJB-2] - @Inheritance support
* [LBEJB-32] - @PrimaryKeyJoinColumn support
* [LBEJB-34] - @DiscriminatorValue,@DiscriminatorColumn support
* [LBEJB-44] - @MapKey support
* [LBEJB-26] - @AssociationOverride support
* [LBEJB-29] - @IdClass support
* [LBEJB-68] - Entity name support
* [LBEJB-65] - byte suggests null as column type
* [LBEJB-66] - if @Column annotation is used on a field, the plugin recognize it as VARCHAR(255) no matter what other annotations or parameters in @Column says
* [LBEJB-70] - For long Strings CBLOB is used. Should be CLOB.
* [LBEJB-58] - Merge handling of join columns for all relationship attributes
* [LBEJB-24] - @JoinColumn support
* [LBEJB-25] - @JoinTable support
* [LBEJB-28] - Multicolumn foreign key support
* [LBEJB-69] - columnDefinition support
* [LBEJB-18] - Creating table with fields having multiple primary key fields adds one pkconstraint per column
* [LBEJB-45] - Does not recognize column type changes in renameColumn tags in liquibase.xml
* [LBEJB-46] - Stacktrace in checkClass
* [LBEJB-49] - @ManyToOne columns in embedded keys get marked as autoincrement if target fields are
* [LBEJB-50] - AIOOBE when renaming "other side" attribute
* [LBEJB-51] - "Create foreign key" uses invalid column name
* [LBEJB-52] - Foreign key column gets "autoIncrement" attribute set in liquibase.xml
* [LBEJB-53] - *ToOne to fields with id field in superclass does not work
* [LBEJB-57] - Nullpointer in ColumnInspection
* [LBEJB-61] - @Lob gives TEXT type instead of BLOB
* [LBEJB-62] - renameColumn tags are missing columnDataType
* [LBEJB-64] - IndexOutOfBoundsException in AnyToOneModel
* [LBEJB-63] - Use liquibase "generic" data types instead of f.i. TEXT
* [LBEJB-23] - Refactoring: Extract subclasses of class and member models
* [LBEJB-36] - QuickFix becomes add unique constraint when it should be drop
* [LBEJB-37] - Modify column type does not mention column name
* [LBEJB-38] - renameColumn may cause ArrayIndexOutOfBoundsException
* [LBEJB-39] - Race when applying quickfix, sometimes same fix appears again
* [LBEJB-40] - Use addUniqueConstraint instead of using constraints tag when creating columns
* [LBEJB-22] - Class rename listener should use new databasemodel
* [LBEJB-27] - @Table support
* [LBEJB-30] - @SecondaryTable support
* [LBEJB-31] - @Version support
* [LBEJB-33] - @TableGenerator support
* [LBEJB-43] - optional support in @Basic
* [LBEJB-42] - @Basic support
* [LBEJB-16] - Add index without name causes exception
* [LBEJB-17] - liquibase.xml in output directories are detected as facet
* [LBEJB-19] - Ids generated are sometimes not unique
* [LBEJB-3] - Support for @AttributeOverride and @AttributeOverrides
* [LBEJB-4] - @OneToMany without mappedBy
* [LBEJB-5] - @ManyToMany support
* [LBEJB-20] - EJB model view
* [LBEJB-21] - @Column name support
* Fixed bug with @OneToOne/@OneToMany and mappedBy
* Null checks
General usage instructions
Works for any module with JPA facet.
To add liquibase support to project: Add Liquibase Facet and click "Create.." in settings to create a new changelog file.
If you have a changelog file in your project, the Liquibase EJB Facet will be autodetected.
Source code is at git://github.com/marcusn/LiquibaseEjb.git