प्रमोद सदालेज और 2003 से Evolutionary Database Design पर मार्टिन फाउलर के प्रभावशाली आलेख का एक बड़ा प्रभाव पड़ा कि मैंने डेटाबेस में स्कीमा परिवर्तनों के प्रबंधन से कैसे संपर्क किया। मैं DbDeploy और जावा और .NET पारिस्थितिक तंत्र में DbDeploy.net का उपयोग करने के लिए चला गया, और अब ActiveRecord migrations का उपयोग करें। यदि आपको तरल पदार्थ दिलचस्प लगता है, तो मैं इन उपकरणों को देखने की सलाह देता हूं।
Neo4j.rb documentation नियो 4j के खिलाफ इस प्रकार के माइग्रेशन पर चर्चा करता है।
मैंने व्यक्तिगत रूप से नियो 4j में माइग्रेशन प्रबंधित करने के लिए एक उपकरण का उपयोग नहीं किया है, लेकिन मैंने माइग्रेशन स्क्रिप्ट लिखी हैं जो गुणों का नाम बदलने, किनारे के लेबल बदलने या इंडेक्स बनाने जैसी चीजें कर चुके हैं। एक उदाहरण के उपयोग के मामले के रूप में, यहाँ एक दुष्टात्मा ग्रूवी स्क्रिप्ट से एक टुकड़ा मैं कुछ विदेशी एक Neo4j ग्राफ में संग्रहीत कुंजी को पुन: मैप और एक सूचकांक को अद्यतन करने के लिए प्रयोग किया जाता है:
try {
projects.each { node ->
old_id = node.ref_id
new_id = old_to_new_ids[old_id]
index.remove('project', old_id, node)
node.ref_id = new_id
index.put('project', new_id, node)
}
} catch (Throwable e) {
println(e)
} finally {
g.shutdown()
}
Neo4j संस्करण 1.8 के रूप में, एक PropertyContainer कर सकते हैं वह यह है कि ग्राफ मेटाडेटा के लिए इस्तेमाल किया जाना चाहिए। 'Schema_version' प्रॉपर्टी को अपडेट करने के लिए इस कंटेनर का उपयोग करना आसान होगा। कोड लगेगा कुछ की तरह:
EmbeddedGraphDatabase db = new EmbeddedGraphDatabase(dbFilename);
Transaction tx = db.beginTx();
PropertyContainer properties = db.getNodeManager().getGraphProperties();
properties.setProperty("schema_version", 3);
tx.success();
tx.finish();
स्रोत
2013-03-11 21:30:31
डीबी डिप्लॉय के लिए अतिरिक्त क्रेडिट! – critium