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 -- --- 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.
