フレームワークに基づいたプロジェクトがありTapestryます。HibernateORMライブラリとして使用します。
私のクラスは、を使用してデータベースにマップされますannotations。
プロジェクトに統合Liquibaseして、データベースの状態を維持し、バージョンを更新できるようにしたいと思います。
この瞬間まで私がしたことは、次のステップです。
1)サービスペアを作成しました:LiquibaseService-> LiquibaseServiceImpl。
LiquibaseSerivce構成からpublic void update()独立して作成し、最終的に実行するメソッドがありますDataSourcehibernate.cfg.xmlliquibase.update("production");
2)このサービスにバインディングを追加しましたAppModule:
binder.bind(LiquibaseService.class, LiquibaseServiceImpl.class).eagerLoad();
3)更新を開始するinitMyApplicationメソッドを追加しました:AppModuleLiquibase
@Startup
public static void initMyApplication(Logger logger, LiquibaseService liquibaseService) {
logger.info("Updating database by liquibase service...");
liquibaseService.update();
logger.info("update-db done.");
}
これはすべて、初期スキームがすでに作成されている本番環境で正常に機能します。テーブルや列などを快適にドロップできます。
しかし、問題は、Liquibaseアプリケーションを新しいサーバーにデプロイするときに、ゼロから(を使用して)新しいスキームを作成できないことです。Hibernate独立して起動し、スキームにクラスにマップされたテーブルがないという不満があります。
仕事が終わるそのHibernate瞬間まで、どうすれば開始を遅くすることができますか?Liquibase