Neo4j में डेटाबेस कैसे हटाएं / बनाएं?


104

क्या MySQL की तरह ग्राफ डेटाबेस Neo4j में विभिन्न डेटाबेस बनाना / हटाना संभव है ? या, कम से कम, परीक्षण के लिए एक स्वच्छ सेटअप प्राप्त करने के लिए मौजूदा नोड के सभी नोड्स और रिश्तों को कैसे हटाएं, उदाहरण के लिए, शेल कमांड का उपयोग करके rmrelया उसी के समान rm?

जवाबों:


98

आप पूरी ग्राफ़ निर्देशिका को इसके साथ निकाल सकते हैं rm -rf, क्योंकि Neo4j बाहर कुछ भी संग्रहीत नहीं कर रहा है:

rm -rf data/*

इसके अलावा, आप निश्चित रूप से सभी नोड्स के माध्यम से पुनरावृति कर सकते हैं और अपने रिश्तों और स्वयं नोड्स को हटा सकते हैं, लेकिन यह बहुत महंगा हो सकता है ...


7
और यदि आप सभी नोड्स पर पुनरावृति करते हैं, तो संदर्भ नोड को रहने देना एक अच्छा विचार हो सकता है।
नवग्रंथ

6
ग्राफ़ निर्देशिका कहाँ स्थित है?
प्रमोद

3
@Pood अपने neo4j निर्देशिका के डेटा निर्देशिका में। आप इसे याद नहीं कर सकते हैं
devshorts

7
HomeOSw के साथ MacOSX पर: /usr/local/Cellar/neo4j/community-1.9.2-unix/libexec/data
Ashley

5
शायद यह कमांड करने से पहले अपने neo4j सर्वर को बंद करना एक अच्छा विचार है।
जॉन बाचिर

98

सभी नोड्स और रिश्तों को हटाने के लिए और भी सरल कमांड:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

11
कथन के लिए +1। लेकिन जागरूक रहें, क्योंकि आप सभी नोड्स को हटा देते हैं, इसका मतलब यह नहीं है कि आपके द्वारा उपयोग किए गए लेबल पूरी तरह से भूल गए हैं। ब्राउज़र अभी भी सभी लेबल दिखाएगा। नोड गुण और संबंध लेबल के लिए Ditto।
दिलुम रणतुंगा

@DilumRanatunga 1. क्या आप जानते हैं कि कैसे नव लेबल भूल जाते हैं? 2. यदि नोड्स हटाए जाते हैं, या रिश्तों के लेबल को जारी रखा जाता है, तो नोड गुण कैसे नष्ट हो सकते हैं?
जॉन बाचिर

1
मेरा मतलब वास्तविक मूल्यों से नहीं है; मेरा मतलब है कि संपत्ति खुद के नाम है।
दिलुम रणतुंगा

5
न केवल नोड्स और किनारे हो सकते हैं, बल्कि डीबी में भी अनुक्रमित हो सकते हैं, और इससे छुटकारा पाना अधिक कठिन है। इसके अलावा, मैं बस हटाए जाने सहित बड़े पैमाने पर बार-बार परीक्षण द्वारा एक DB उदाहरण को बर्बाद करने में कामयाब रहा और ऐसा लगता है कि भौतिक रूप से DB फ़ाइलों को हटाने और Neo4J को फिर से शुरू करने से प्रदर्शन में स्पष्ट सुधार होता है।
प्रवाहित करें

मैं doo कंटेनर में neo4j पर मेमोरी से बाहर निकला।
बोलेक_कोलेक

52

Neo4j 2.3 से,

हम रिश्तों के साथ सभी नोड्स को हटा सकते हैं ,

MATCH (n)
DETACH DELETE n

वर्तमान में Noe4j में कई डेटाबेस बनाने का कोई विकल्प नहीं है। आपको Neo4j डेटा के कई स्टोर बनाने की आवश्यकता है। संदर्भ देखें ।


3
यदि आप फ़ाइल सिस्टम का सहारा नहीं लेना चाहते हैं तो सबसे अच्छा जवाब।
थॉमसएच 12

इस दृष्टिकोण के साथ समस्या यह है कि यह न तो बाधाओं को हटाएगा और न ही अनुक्रमित करेगा
डेविड

47

Neo4j में नया डेटाबेस बनाना

Neo4j समुदाय शुरू करने से पहले ब्राउज़ विकल्प पर क्लिक करें

यहां छवि विवरण दर्ज करें

और एक अलग निर्देशिका चुनें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

और स्टार्ट बटन पर क्लिक करें।

यहां छवि विवरण दर्ज करें

उस डिरेसरी पर नया डेटाबेस बनाया गया


12

त्वरित और गंदा तरीका जो ठीक काम करता है:

bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start

11

टेस्ट सूट चलाने के लिए किसी अन्य व्यक्ति को क्लीन ग्राफ की आवश्यकता होती है - https://github.com/jexp/neo4j-clean-remote-db-addon एक REST कॉल के माध्यम से db को साफ़ करने की अनुमति देने के लिए एक बढ़िया एक्सटेंशन है। जाहिर है, हालांकि, उत्पादन में इसका इस्तेमाल नहीं करते हैं!


यह नोड को हटाने के लिए लगता है। 0. मैं इसे कैसे बनाऊँ?
विल

1
दरअसल, यह संदर्भ नोड ( github.com/jexp/neo4j-clean-remote-db-addon/blob/master/src/… ) को छोड़ देता है। लेकिन अगर आपका संदर्भ नोड चला गया है (और आपको इसकी आवश्यकता है) तो आपको एक साफ डेटा डायर के साथ शुरू करना होगा, क्योंकि setRefenceNode()अभी तक कोई कॉल नहीं है ( stackoverflow.com/questions/7186832/… )।
मैट लूंगो

7

एक अलग neo4j उदाहरण पर अपना परीक्षण कोड चलाएँ।

  1. अपनी neo4j निर्देशिका को एक नए स्थान पर कॉपी करें। इसका प्रयोग परीक्षण के लिए करें। नई निर्देशिका में सीडी।
  2. पोर्ट को बदलें ताकि आप अपने परीक्षण चला सकें और इसे सामान्य रूप से एक साथ उपयोग कर सकें। पोर्ट को खोलने के लिए conf/neo4j-server.propertiesऔर org.neo4j.server.webserver.portअप्रयुक्त को सेट करने के लिए।
  3. सेटअप पर परीक्षण सर्वर प्रारंभ करें। क्या ./neo4j stopऔर rm -rf data/graph.dbटियरडाउन पर।

अधिक जानकारी के लिए neo4j देखें : डेटाबेस कैसे स्विच करें? और डॉक्स


6

Neo4j 2.0.0 में? अब समर्थित नहीं है। इसके बजाय वैकल्पिक मैट का उपयोग करें:

START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;

6

सबसे आसान उत्तर है: नहीं

"शुरू करने" का सबसे अच्छा तरीका है

  • किसी अन्य खाली डेटा फ़ोल्डर में जाएं

या

  • पूरी तरह से Neo4j को बंद करें
  • पुराने डेटा फ़ोल्डर को खाली करें
  • Neo4j को पुनरारंभ करें और खाली फ़ोल्डर को डेटा फ़ोल्डर के रूप में सेट करें

सभी नोड्स और रिश्तों को हटाने का एक तरीका है (जैसा यहाँ वर्णित है )

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

1

2.0.0 -M6 में आप सभी नोड्स और संबंधों को हटाने के लिए निम्नलिखित साइफ्रे स्क्रिप्ट को निष्पादित कर सकते हैं:

start n=node(*)
match (n)-[r?]-()
delete n,r

2
दुर्भाग्य से यह नवीनतम 2.0.0 रिलीज में एक त्रुटि पैदा करता है: SyntaxException: प्रश्न चिह्न अब वैकल्पिक पैटर्न के लिए उपयोग नहीं किया जाता है - इसके बजाय वैकल्पिक MATCH का उपयोग करें (पंक्ति 1, कॉलम 26) ==> "प्रारंभ n = नोड (*) मिलान (n) ) - [आर?] - () एन हटाएं, आर "
रिचज

मुझे समझ में नहीं आता, क्योंकि उत्तर स्पष्ट रूप से 2.0.0 -M6 में कहा गया है, जो कि नवीनतम संस्करण था जब मैंने प्रश्न का उत्तर दिया, जबकि अन्य ने वर्तमान में नवीनतम बिल्ड के लिए सही उत्तर दिए ।
मार्टिन सीलर

1

संस्करण 3 के अनुसार मेरा मानना ​​है कि अब अलग डेटाबेस इंस्टेंसेस बनाना संभव है और इस तरह उनका स्थान थोड़ा अलग है।

इसका जिक्र: https://neo4j.com/developer/guide-import-csv/

--Into Retail.db स्पष्ट रूप से लक्ष्य डेटाबेस है, जिसमें एक मौजूदा डेटाबेस नहीं होना चाहिए।

मेरे उबंटू बॉक्स पर स्थान इस प्रकार है:

/var/lib/neo4j/data/databasesजहाँ मैं वर्तमान में केवल वही देखता graph.dbहूँ जो मुझे लगता है कि डिफ़ॉल्ट होना चाहिए।


0

आप अपनी डेटा फ़ाइलों को हटा सकते हैं और यदि आप इस तरह से जाना चाहते हैं, तो मैं उदाहरण के लिए, बस आपके graph.db को हटाने की सलाह दूंगा। अन्यथा आपकी प्रमाणीकरण जानकारी गड़बड़ करने वाली है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.