Also do not iterate both directions only IN, otherwise you will duplicate edges 2 times.
On Mon, Mar 24, 2014 at 12:54 PM, Andrey Lomakin <[email protected]>wrote: > Iterator should repeat the same vertex as many times as you have edges. > But better to recheck it. > > > On Mon, Mar 24, 2014 at 12:46 PM, Valentin Popov <[email protected]>wrote: > >> Andrey, thanks >> >> As I right understand graph is instanceof OrientGraph. >> Also what should I do if more when one Edge between vertixes? >> >> Regards >> >> понедельник, 24 марта 2014 г., 14:05:28 UTC+4 пользователь Andrey Lomakin >> написал: >>> >>> Valentin, >>> You should try following: >>> >>> Iterable<Vertex> iterable = getVertices(); >>> for(Vertex vertex : iterable) { >>> Vertex newVertex = graph.addVertex("class:className"); >>> //copy properties. >>> >>> vertex.setProperty("relatedVertex", newVertex.getIdentity()); >>> graph.commit(); >>> } >>> >>> >>> >>> iterable = getVertices(); >>> for(Vertex vertex : iterable) { >>> Vertex newVertex = graph.getVertex(vertex. >>> getProperty("relatedVertex")); >>> Iterable inVertexes = vertex.getVertixes(Direction.IN); >>> >>> for(Vertex inVertex: inVertexes) { >>> Vertex newInVertex = graph.getVertex(inVertex. >>> getProperty("relatedVertex")); >>> newVertex.addEdge(null, newInVertex, "label"); >>> graph.commit(); >>> } >>> } >>> >>> >>> >>> On Mon, Mar 24, 2014 at 11:17 AM, Andrey Lomakin >>> <[email protected]>wrote: >>> >>>> Hi Valentin, >>>> Sorry it is my fault give me sometime I will come up with working >>>> approach. >>>> >>>> >>>> On Mon, Mar 24, 2014 at 10:44 AM, Valentin Popov <[email protected]>wrote: >>>> >>>>> Andrey, hello >>>>> >>>>> I execute such code, to move documents to new classes >>>>> >>>>> final ODatabaseDocumentTx database = new ODatabaseDocumentTx("local:" >>>>> +dbLocation); >>>>> >>>>> database.open("admin", "admin"); >>>>> >>>>> ORecordIteratorClass<ODocument> record = database.browseClass("V"); >>>>> >>>>> for (ODocument oDocument : record) { >>>>> >>>>> Integer itemTypei = (Integer) oDocument.field("itemtype"); >>>>> >>>>> ItemType type = BluePrintDatabase.getItemTypeFromInt(itemTypei); >>>>> >>>>> ODocument copy = new ODocument(); >>>>> >>>>> oDocument.copyTo(copy); >>>>> >>>>> copy.setClassName(type.getClassName()); >>>>> >>>>> copy.removeField("itemtype"); >>>>> >>>>> copy.save(); >>>>> >>>>> } >>>>> >>>>> ORecordIteratorClass<ODocument> folders = database.browseClass("v_ >>>>> folder"); >>>>> >>>>> for (ODocument oDocument : folders) { >>>>> >>>>> System.out.print(oDocument.toJSON()); >>>>> >>>>> } >>>>> >>>>> >>>>> I see documents on 1st loop are created and saved ( >>>>> v_folder#9:1{out_folder:[4],OID:80d7ca29f40e8b50,itemname:Top of >>>>> Personal Folders,cat:email,version_id:b821ec2b,in_folder:#12:0} v11) >>>>> >>>>> >>>>> but check loop, return 0 result. >>>>> >>>>> >>>>> Do I need some how insert copy document to database? >>>>> >>>>> >>>>> Also output of folder contains new created files begins with v_* >>>>> >>>>> >>>>> database.ocf e.och index.odh manindex.och orole.och user.0.ocl >>>>> v_folder.0.ocl >>>>> >>>>> default.0.ocl folder.0.ocl internal.0.ocl ofunction.0.ocl >>>>> oschedule.0.ocl user.och v_folder.och >>>>> >>>>> default.0.oda folder.och internal.och ofunction.och oschedule.och >>>>> v.0.ocl v_root.0.ocl >>>>> >>>>> default.och index.0.ocl item.0.ocl orids.0.ocl ouser.0.ocl v.och >>>>> v_root.och >>>>> >>>>> default.odh index.0.oda item.och orids.och ouser.och v_blob.0.ocl >>>>> v_user.0.ocl >>>>> >>>>> e.0.ocl index.och manindex.0.ocl orole.0.ocl txlog.otx v_blob.och >>>>> v_user.och >>>>> >>>>> >>>>> Regards >>>>> Valentin >>>>> >>>>> >>>>> >>>>> >>>>> пятница, 21 марта 2014 г., 15:55:29 UTC+4 пользователь Andrey Lomakin >>>>> написал: >>>>> >>>>>> Yes, sure. >>>>>> It is possible but there is no toll for it. >>>>>> You should create one which match you needs. >>>>>> >>>>>> I you need to copy document content you can use com.orientechnologies. >>>>>> orient.core.record.impl.ODocument#copyTo and then set document class >>>>>> to the one you need. >>>>>> After that you can save document. >>>>>> >>>>>> >>>>>> On Fri, Mar 21, 2014 at 1:39 PM, Valentin Popov >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> 1. We have DB created by 1.5 library with local engine. It is schema >>>>>>> free, so all records are V type and E type. All indexes are manual >>>>>>> 2. Is it possible covert exist DB to 1.7 plocal with schema hybrid >>>>>>> and auto indexes. >>>>>>> >>>>>>> For each record we know which class it must be, cause each record >>>>>>> contains itemtype property. >>>>>>> >>>>>>> >>>>>>> Still can not get it. >>>>>>>> >>>>>>>> Do you mean that you need to create classes and move records to the >>>>>>>> classes ? >>>>>>>> >>>>>>> >>>>>>> Yup, for vertexes also all edge's connections. And remove records >>>>>>> from default class V. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Mar 21, 2014 at 12:09 PM, Valentin Popov < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> I mean we have a database 1.5.1 with manual indexes schema less on >>>>>>>>> local engine. So all vertexes and edges are type V and E. >>>>>>>>> >>>>>>>>> We need using 1.7.x libs convert schema to schema hybrid and >>>>>>>>> export it, after import it to plocal engine. >>>>>>>>> >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Sorry, I did not understand. >>>>>>>>>> What do you mean ? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Mar 21, 2014 at 11:55 AM, Valentin Popov < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Moving from 1.5.x (manual indexes, local, schema less) to 1.7.x >>>>>>>>>>> (schema hybrid, auto index). >>>>>>>>>>> >>>>>>>>>>> My plan is change scheme on 1.5.x from schema less to schema >>>>>>>>>>> hybrid follow such code and after export it: >>>>>>>>>>> >>>>>>>>>>> String dbLocation = "/Library/Application >>>>>>>>>>> Support/MailArchiva/ROOT/database/archiva.db"; >>>>>>>>>>> >>>>>>>>>>> String exportFile = "/Library/Application >>>>>>>>>>> Support/MailArchiva/ROOT/database/export.json"; >>>>>>>>>>> >>>>>>>>>>> final ODatabaseDocumentTx database = new ODatabaseDocumentTx( >>>>>>>>>>> "local:"+dbLocation); >>>>>>>>>>> >>>>>>>>>>> database.open("admin", "admin"); >>>>>>>>>>> >>>>>>>>>>> ORecordIteratorClass<ODocument> record = database.browseClass( >>>>>>>>>>> "V"); >>>>>>>>>>> >>>>>>>>>>> // database.begin(); >>>>>>>>>>> >>>>>>>>>>> for (ODocument oDocument : record) { >>>>>>>>>>> >>>>>>>>>>> Integer itemTypei = (Integer) oDocument.field("itemtype"); >>>>>>>>>>> >>>>>>>>>>> ItemType type = BluePrintDatabase.getItemTypeFromInt(itemTypei); >>>>>>>>>>> >>>>>>>>>>> String className = oDocument.getClassName(); >>>>>>>>>>> >>>>>>>>>>> oDocument.setClassName(type.getClassName()); >>>>>>>>>>> >>>>>>>>>>> oDocument.removeField("itemtype"); >>>>>>>>>>> >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> database.commit(); >>>>>>>>>>> >>>>>>>>>>> ODatabaseExport databaseExport = null; >>>>>>>>>>> >>>>>>>>>>> try { >>>>>>>>>>> >>>>>>>>>>> databaseExport = new ODatabaseExport(database, exportFile, >>>>>>>>>>> newOCommandOutputListener() { >>>>>>>>>>> >>>>>>>>>>> @Override >>>>>>>>>>> >>>>>>>>>>> public void onMessage(String arg0) { >>>>>>>>>>> >>>>>>>>>>> System.out.println(arg0); >>>>>>>>>>> >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> }); >>>>>>>>>>> >>>>>>>>>>> databaseExport.exportDatabase(); >>>>>>>>>>> >>>>>>>>>>> databaseExport.close(); >>>>>>>>>>> >>>>>>>>>>> } catch (IOException e) { >>>>>>>>>>> >>>>>>>>>>> e.printStackTrace(); >>>>>>>>>>> >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> database.close(); >>>>>>>>>>> >>>>>>>>>>> Orient.instance().shutdown(); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> But I get some issues with that approach, it looks like Vertexes >>>>>>>>>>> classes are not converted. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Started export of database 'archiva.db' to /Library/Application >>>>>>>>>>> Support/MailArchiva/ROOT/database/export.json.gz... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Exporting database info... >>>>>>>>>>> >>>>>>>>>>> OK >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Exporting clusters... >>>>>>>>>>> >>>>>>>>>>> OK (18 clusters) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Exporting schema... >>>>>>>>>>> >>>>>>>>>>> OK (17 classes) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Exporting records... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'internal' (id=0)... >>>>>>>>>>> >>>>>>>>>>> OK (records=3/3) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'index' (id=1)... >>>>>>>>>>> >>>>>>>>>>> OK (records=4/4) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'manindex' (id=2)... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> OK (records=12/12) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'default' (id=3)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'orole' (id=4)... >>>>>>>>>>> >>>>>>>>>>> OK (records=3/3) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'ouser' (id=5)... >>>>>>>>>>> >>>>>>>>>>> OK (records=3/3) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'ofunction' (id=6)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'oschedule' (id=7)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'orids' (id=8)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'v' (id=9)... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> OK (records=395/395) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'e' (id=10)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'user' (id=11)... >>>>>>>>>>> >>>>>>>>>>> OK (records=1/1) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'folder' (id=12)... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> OK (records=15/15) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'item' (id=13)... >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> OK (records=378/378) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'v_root' (id=14)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'v_folder' (id=15)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'v_user' (id=16)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> - Cluster 'v_blob' (id=17)... >>>>>>>>>>> >>>>>>>>>>> OK (records=0/0) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Done. Exported 814 of total 814 records >>>>>>>>>>> >>>>>>>>>>> Any ideas how to do export with schema modification from 1.5.x >>>>>>>>>>> local correct, and import such export to new 1.7. plocal >>>>>>>>>>> >>>>>>>>>>> Regards >>>>>>>>>>> Valentin >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> --- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "OrientDB" group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to [email protected]. >>>>>>>>>>> >>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Best regards, >>>>>>>>>> Andrey Lomakin. >>>>>>>>>> >>>>>>>>>> Orient Technologies >>>>>>>>>> the Company behind OrientDB >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> >>>>>>>>> --- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "OrientDB" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Best regards, >>>>>>>> Andrey Lomakin. >>>>>>>> >>>>>>>> Orient Technologies >>>>>>>> the Company behind OrientDB >>>>>>>> >>>>>>>> -- >>>>>>> >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "OrientDB" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Best regards, >>>>>> Andrey Lomakin. >>>>>> >>>>>> Orient Technologies >>>>>> the Company behind OrientDB >>>>>> >>>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "OrientDB" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Best regards, >>>> Andrey Lomakin. >>>> >>>> Orient Technologies >>>> the Company behind OrientDB >>>> >>>> >>> >>> >>> -- >>> Best regards, >>> Andrey Lomakin. >>> >>> Orient Technologies >>> the Company behind OrientDB >>> >>> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Best regards, > Andrey Lomakin. > > Orient Technologies > the Company behind OrientDB > > -- Best regards, Andrey Lomakin. Orient Technologies the Company behind OrientDB -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
