package com.wooki.installer.schema; import org.apache.tapestry5.ioc.annotations.Inject; import com.spreadthesource.tapestry.dbmigration.annotations.Version; import com.spreadthesource.tapestry.dbmigration.command.CreateConstraint; import com.spreadthesource.tapestry.dbmigration.command.Drop; import com.spreadthesource.tapestry.dbmigration.migrations.Constraint; import com.spreadthesource.tapestry.dbmigration.migrations.DropContext; import com.spreadthesource.tapestry.dbmigration.migrations.Migration; import com.spreadthesource.tapestry.dbmigration.services.MigrationHelper; @Version(3) public class RootConstraints implements Migration { @Inject private MigrationHelper helper; public void up() { helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Books"); ctx.setForeignKey("books_owner_constraint", "Users", "owner_id", "user_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Chapters"); ctx.setForeignKey("chapters_book_constraint", "Books", "book_id", "book_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Comments"); ctx.setForeignKey( "comments_publication_constraint", "Publications", "publication_id", "publication_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Comments"); ctx.setForeignKey( "coments_commentlabel_constraint", "CommentsLabels", "comment_label_id", "comment_label_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Comments"); ctx.setForeignKey("comments_user_constraint", "Users", "user_id", "user_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Publications"); ctx.setForeignKey("publications_chapter_constraint", "Chapters", "chapter_id", "chapter_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("AbstractBooksActivities"); ctx.setForeignKey("aba_book_constraint", "Books", "book_id", "book_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("AbstractChaptersActivities"); ctx.setForeignKey("aca_chapter_constraint", "Chapters", "chapter_id", "chapter_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("Activities"); ctx.setForeignKey("a_user_constraint", "Users", "user_id", "user_id"); } }); helper.add(new CreateConstraint() { public void run(Constraint ctx) { ctx.setTableName("CommentsActivities"); ctx.setForeignKey("ca_comment_constraint", "Comments", "comment_id", "comment_id"); } }); } public void down() { helper.add(new Drop() { public void run(DropContext ctx) { ctx.dropForeignKey("Books", "books_owner_constraint"); ctx.dropForeignKey("Chapters", "chapters_book_constraint"); ctx.dropForeignKey("Comments", "comments_publication_constraint"); ctx.dropForeignKey("Comments", "coments_commentlabel_constraint"); ctx.dropForeignKey("Comments", "comments_user_constraint"); ctx.dropForeignKey("Publications", "publications_chapter_constraint"); ctx.dropForeignKey("AbstractBooksActivities", "aba_book_constraint"); ctx.dropForeignKey("AbstractChaptersActivities", "aca_chapter_constraint"); ctx.dropForeignKey("Activities", "a_user_constraint"); ctx.dropForeignKey("CommentsActivities", "ca_comment_constraint"); } }); } }