0
在JBoss中,我們可以在部署應用程序時執行import.sql。Glassfish版本化執行import.sql和update.sql
它可以在Glassfish中實現嗎?我們也可以爲不同的版本添加幾個腳本嗎?例如在版本2.5中,我添加了這個特定的用戶記錄。
我目前正在查看DBMigration和LiquiBase,有沒有其他建議?或者哪兩個是可靠的經驗基礎?
感謝,
czetsuya
在JBoss中,我們可以在部署應用程序時執行import.sql。Glassfish版本化執行import.sql和update.sql
它可以在Glassfish中實現嗎?我們也可以爲不同的版本添加幾個腳本嗎?例如在版本2.5中,我添加了這個特定的用戶記錄。
我目前正在查看DBMigration和LiquiBase,有沒有其他建議?或者哪兩個是可靠的經驗基礎?
感謝,
czetsuya
不幸的是,之後的研究幾天我認爲相同的功能不能在GlassFish中被實現。相反,另一種方法是使用@PostConstruct方法創建@Startup,@Singleton註釋bean,以在Glassfish啓動時創建數據庫錶行。
@Singleton
@Startup
public class InitData {
@Inject
private Logger log;
@PersistenceContext
private EntityManager em;
@PostConstruct
private void init() {
log.debug("[dropship-ejb] init data");
@SuppressWarnings("unchecked")
List<Role> roles = em.createQuery("FROM Role r").getResultList();
if (roles == null || roles.size() == 0)
initData();
}
private void initData() {
// insert roles
createRole("member", "Member");
createRole("affiliate", "Affiliate");
createRole("backend", "Backend");
createRole("admin", "Administrator");
}
private Role createRole(String name, String description) {
Role r = new Role();
r.setName(name);
r.setDescription(description);
em.persist(r);
return r;
}
}