2016-06-14 108 views
2

給定一個com.orientechnologies.orient.core.db.ODatabase<T>對象,清除數據庫(刪除每個對象,但尊重現有模式)的最佳程序化方法(不使用sql,無控制檯腳本)是什麼?清除OrientDB數據庫

+2

你可以看看這個類似的問題http://stackoverflow.com/questions/28134059/empty-all-the-rows-in-orient-db。希望能幫助到你。 –

回答

1

基於Alessandro的評論和rmuller對this question的回答,我已經構建了一個java helper方法。

db.getMetadata().getSchema().getClasses().stream() 
    .filter(oClass -> !oClass.getName().startsWith(ORIENTDB_CLASS_PREFIX)) // 
    .forEach(oClass -> { 
      try { 
       oClass.truncate(); 
      } catch (IOException e) { 
       LOGGER.warn("Not possible to truncate class " + oClass.getName(), e); 
      } 
    }); 
+0

什麼是ORIENTDB_CLASS_PREFIX? – Shashank

+0

private static final String ORIENTDB_CLASS_PREFIX =「O」; – diegomtassis

+0

如果圖表無法正常工作,請幫助 – Shashank