PostgreSQL 9.4
DbUnit 2.5.0
@beforeで、以下のとおりバックアップします
lang
1 IDataSet allDataSet = databaseTester.getConnection().createDataSet(); 2 this.backupFile = File.createTempFile("backup", "xml"); 3 FlatXmlDataSet.write(allDataSet, new FileOutputStream(backupFile));
このとき、@afterでリストアしようとすると、外部キーエラーで削除できなかったり、削除にたまたま成功してもINSERT時にエラーとなったりします
lang
1 IDataSet allDataSet = new FlatXmlDataSetBuilder().build(backupFile); 2 DatabaseOperation.CLEAN_INSERT.execute( 3 databaseTester.getConnection(), allDataSet);
MySQLならば、FOREIGN_KEY_CHECKS=0とすれば外部キー制約は無視されるとのことですが、Postgresqlにはそういった機能はなさそうです。
ALTER TABLE [tablename] DISABLE TRIGGER ALL;
との方法もあるとのことですが、全テーブルに1つ1つセットしていく必要があります。
そこで以下の質問ですが、
・PostgreSQL に、全テーブルにFK制約を無視するような方法がありますか?
・DbUnitまたはそれ以外のDAOをテストするようなフレームワークで、このような問題を解決する方法がありますか?
何かアドバイスいただければ幸いです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/05 01:00
2015/07/05 01:31