Closed KinaneD closed 3 years ago
@KinaneD how far along is this? Do you guys need any help with it?
Hey @heydavid713, we've got somewhere, providing support to causal clusters, but still considerable work and clean-up is required. You can take a look here https://github.com/Vinelab/NeoEloquent/tree/floobits/graphaware.
Hey @KinaneD, I've been working on getting NeoEloquent to work with clustering by creating a bridge to the official Neo4j JavaScript driver using Rialto. I am thinking that the advantage is relying on an officially supported Neo driver. Could that work as an alternative solution for you?
A little update for posterity..
As @SimonThordal mentioned above we first thought it would be best to bridge the JS driver, but have since decided to go another route and port the python driver to php instead.
Porting the python driver to php is not a trivial task, and we haven't really gotten started yet.. but we still intend to it! 😅
@berteltorp @SimonThordal let us know how we can help! 😄
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
*WIP
Neo4j Client Migration
NeoEloquent 1.5-dev
NeoEloquent process
createWith
$this->connection->statement($cypher, [], true);
NeoEloquent/Connection::statement()
Migration Guide
Connection::createSingleConnectionClient()
to useGraphAware\Neo4j\Client\ClientBuilder
instead ofNeoxygen\NeoClient\ClientBuilder
Connection::statement()
from using$this->getClient->sendCypherQuery(…)
to$this->getClient()->run(…)
Neoxygen\NeoClient\Formatter\Result
toGraphAware\Neo4j\Client\Formatter\Result
Neoxygen\NeoClient\Formatter\Node
toGraphAware\Neo4j\Client\Formatter\Type\Node
GraphAware\Neo4j\Client\Formatter\Result
Neoxygen\NeoClient\Formatter\ResponseFormatter::format()
populatesNeoxygen\NeoClient\Formatter\Result
Eloquent\Builder::resultsToModelsWithRelations()
andEloquent\Builder::resultsToModels()
to expectGraphAware\Neo4j\Client\Formatter\Result
identifiers
usekeys
i.e. placeholdersGraphAware\Neo4j\Client\Formatter\Type\Relationship
Client::__call()
->NeoClientCoreExtension::createTransaction()
. Instead of using the DB Facade, use$client->transaction()->push(CYPHER);
or adapt it to the new syntax.Eloquent\Builder::getNodeAttributres(Node $nodes)
andEloquent\Builder::newModelFromNode()
to use$node->values();
instead of$node->getProperties();
.Eloquent\Builder::getProperties()
=>Undefined Class Row
Everyman.Eloquent\Builder::mutateMorphToOrigin
uses deprecated$result->getRelationships()
use newgetRelationshipRecords()
? AND replace$relationship->getProperty($mutationModelProperty)
WITH $relationship->get($mutationModelsProperty)}.Query\Builder
uses invalid$results->getAllByIdentifier()
, e.g.Query\Builder::aggregate()
Eloquent\Builder::eagerLoadRelations()
fail to load all relationsEdges\Finder::directionFromRelation
to not use$relation->getStartNode()
anymore.