2011-03-20 21 views
17

मैं रूबी सीएमएस (या प्लगइन) की तलाश में हूं जो एक गिट रिपोजिटरी में स्थित सामग्री को सेवा और संपादित कर सकता है। मैं अपनी सामग्री को डीबी में रखने में बीमार हूं। उपयोगकर्ता, सेटिंग्स, टिप्पणियां, ठीक है। लेकिन कोई और सामग्री नहीं।गिट-आधारित सामग्री प्रबंधन?

किसी पृष्ठ पर प्रत्येक लाइव संपादन को स्वचालित रूप से सर्वर-साइड विलय की आवश्यकता को रोकने के लिए स्वचालित रूप से प्रतिबद्ध होने की आवश्यकता होगी। साथ ही, जब भी नए बदलाव धकेल जाते हैं, उन्हें फाइल सिस्टम पर तुरंत अपडेट करने की आवश्यकता होगी।

रिफाइनरी सीएमएस दस्तावेज कुछ ऐसा ही प्रतीत होता है, हालांकि शायद रिमोट रिपोजिटरी के साथ।

मैंने गिटमोडेल और गिट-ब्लॉग के बारे में पढ़ा है, लेकिन मैं अभी भी कुछ ऐसी चीज ढूंढ रहा हूं जो मेरी आवश्यकताओं से मेल खाती है। [संपादित करें: GitModel हाथ से संपादित करने के लिए जब सबसे CMSes के साथ प्रयोग किया बहुत कठिन है, और Git ब्लॉग स्थिर फ़ाइल पीढ़ी का उपयोग करता है।]

संपादित करें: सामग्री के लिए डेटाबेस के विरुद्ध मेरे पूर्वाग्रह केवल उन साइटों के एक उच्च डिग्री की जरूरत है कि पर लागू होता है अनुकूलन, और किसी भी सीएमएस का उपयोग नहीं कर सकते हैं। साइटें जिनके कोड इसकी सामग्री के रूप में विकसित होते हैं। यह तब होता है जब डीबी में सामग्री होना एक सपना दुःस्वप्न है। जब आपको एक ही समय में सामग्री और कोड को फोर्क करने की आवश्यकता होती है, तो वे उन्हें बाद में उत्पादन में विलय करते हैं। डीबी शाखा नहीं है और विलय नहीं करते हैं।

मेरे पास ऐसी साइट है।

डीबी-केवल सामग्री के पक्ष में प्रदर्शन तर्क शून्य और शून्य है। मैंने 5 साल पहले एक सीएमएस लिखा था जो फाइल सिस्टम से डेटाबेस को सिंक्रनाइज़ करता है, जहां फाइल सिस्टम हमेशा मास्टर कॉपी होता है। यह 10,000 प्रतिक्रिया समय और 2 एस reindex समय बनाए रखने, आसानी से 100,000 पृष्ठों के लिए स्केल किया गया। सभी सामग्री, मेटाडेटा, टैग, तिथियां इत्यादि की पूरी तरह से खोजने योग्य इंडेक्स और हेक, मैंने इसे ग्रह, एएसपी.नेट पर सबसे धीमे, सबसे दर्दनाक रूपरेखा में लिखा है। यह वास्तव में लगभग एएसपी.NET सहनशील बना दिया है, और इसने विभिन्न कंपनियों को बहुत अच्छी तरह से सेवा दी है, क्योंकि उनके ऊपर उल्लिखित एक ही तरह की साइट थी।

छोटे साइटों बस एक में कैश मेमोरी का उपयोग कर सकते हैं, पूरी तरह

db-केवल सामग्री के लिए एक वैध तर्क संपादन के scalability है db सामग्री लंघन। संपादकों को सभी एक ही सर्वर का उपयोग करना चाहिए, हालांकि परिवर्तनों को बाहर की तरफ दोहराया जा सकता है। लेकिन त्वरित-बदलते, अत्यधिक अनुकूलित साइट्स के मामले में जो सामग्री को अक्सर सामग्री के रूप में बदलते हैं, कहा गया कोड और सामग्री का वितरित/सामुदायिक संपादन असंभव है। समुदाय/वितरित संपादन एक अलग सिस्टम का उपयोग कर सकते हैं।

अब तक, निकटतम मैं क्लाउड 9 का उपयोग सामग्री (गीस्टा सीएमएस) के गिट रिपोजिटरी को संपादित करने के लिए कर रहा हूं, फिर कमांड लाइन के माध्यम से परिवर्तनों को दबाएं। यह धीमा है, लेकिन कम से कम यह वेब-आधारित है यदि मेरी देव मशीन आसान नहीं है जो मुझे पता चलता है कि मैंने एक लेख में अपना नाम गलत लिखा है। अभी भी बेहतर विकल्पों की तलाश में है।

+0

क्या आप इस बारे में कुछ बात करना चाहेंगे कि आप डेटाबेस में सामग्री क्यों नहीं चाहते हैं? –

+1

"मैंने गिटमोडेल और गिट-ब्लॉग के बारे में पढ़ा है, लेकिन मैं अभी भी कुछ ऐसी चीज ढूंढ रहा हूं जो मेरी ज़रूरतों को थोड़ा करीब से मेल खाता हो।" उन चीजों के बारे में क्या है जो आपको असंतोषजनक लगता है? – MatrixFrog

+0

गिटमोडेल फाइलों को कैसे लिखा जाता है, इस पर बहुत लचीलापन प्रदान नहीं करता है, और उन्हें सीधे संपादित करना मुश्किल बनाता है। गिट-ब्लॉग स्थिर पीढ़ी का उपयोग करता है, जबकि मेरी अधिकांश साइट में उन्नत गतिशील कार्यक्षमता होगी। –

उत्तर

0

मैंने micro-CMS called Hardwired को कार्यान्वित करने का अंत किया जो मेरे रास्ते से बाहर रहने का उत्कृष्ट काम करता है।

इसे आज़माएं।

-1

किस कारण से आप अपनी सामग्री को गिट रिपोजिटरी में रखना चाहते हैं? समस्या वास्तव में क्या है जो आपको डेटाबेस से नफरत करता है? एक डीबीएमएस तेजी से डेटा पढ़ने और लिखने के लिए बनाया गया है, जबकि गिट परिवर्तन प्रबंधन के लिए बनाया गया है। यह एक वास्तुकला पसंद है जिसके साथ आप पैर में खुद को गोली मार सकते हैं।

यदि समस्या उन उपयोगकर्ताओं में निहित है जो प्रविष्टियों को ओवरराइट करते हैं, तो आपको उन्हें पिछले संस्करणों (या उनमें से भिन्नता) को संग्रहित करने के लिए कार्यक्षमता प्रस्तुत करना चाहिए, उन्हें ओवरराइट नहीं करना चाहिए।उदाहरण के लिए rails_admin मणि

और तत्काल काम करने के साथ भी आप समस्या से बच नहीं पाएंगे कि एक उपयोगकर्ता संपादन के लिए एक प्रविष्टि खोलता है और उसे एक घंटे तक रखता है जब तक कि वह इसे बचाता है, जहां एक और उपयोगकर्ता एक करता है 5 मिनट में त्वरित संपादन। यहां आपको क्लाइंट से भेजने की आवश्यकता है कि संशोधन में वह संशोधन कर रहा है और संघर्ष के मामले में, एक इंटरफेस दिखाएं जहां उपयोगकर्ता दूसरे उपयोगकर्ता द्वारा किए गए लोगों के साथ अपने संशोधन की तुलना कर सकता है। या यदि आप उन्नत हैं तो आप इसे Google-डॉक्स तरीके से कर सकते हैं। एक साथ संपादन सक्षम करें। अपने खुद के प्रतिपादन कोड के साथ एक सरल फ़ाइल आधारित भंडारण प्रणाली के आधार पर

https://github.com/schacon/ruby-git

:

+0

मेरी साइट एक एकल संपादक साइट है। लॉक-ऑन-सेव पर्याप्त है। –

+2

इसके अलावा, आप प्रत्येक संपादक अपनी शाखा पर काम कर सकते हैं, फिर अंतर को गिट करने के लिए एक इंटरफ़ेस बना सकते हैं और एक साथ परिवर्तनों को मर्ज करने में सहायता के लिए विलय कर सकते हैं। ऐसा लगता है कि समुदाय हथियार में है कि आप मानते हैं कि पवित्र डीबीएमएस हमेशा सबसे अच्छा समाधान नहीं हो सकता है। मैं एक के लिए कहता हूं इसके लिए जाओ। गिट एक ऑब्जेक्ट डेटाबेस है और मेरी विनम्र राय में सामग्री प्रबंधन के लिए फायदे का एक टन प्रदान करता है। –

0

शायद तुम एक Git आवरण संपादन के लिए, आदि जोड़ सकता।

हालांकि मैं रूबी से इतना परिचित नहीं हूं, इसलिए चीजों के रूबी प्रतिपादन पक्ष पर ज्यादा मदद नहीं कर सकता।

यह टिप्पणी आप "मेरी अधिकांश साइट में उन्नत गतिशील कार्यक्षमता शामिल होगी" ऐसा लगता है कि आपको अपनी अनूठी आवश्यकताओं के आधार पर अपना स्वयं का समाधान रोल करने की आवश्यकता होगी।

1

आपका समाधान बाद में बहुत भ्रमित हो सकता है और बाद में आपके सिरदर्द हो सकते हैं।

मैं सलाह देता हूं: (1) मोंगो डीबी जैसे नोएसक्यूएल का उपयोग करें। (2) पिछले डीबी से अपने सभी डेटा माइग्रेट करें। (3) फिर अपने डीबी को संस्करण के साथ रखें। आप कर सकते हैं, क्योंकि यह दस्तावेज़-आधारित है और एसक्यूएल नहीं है।

मोंगो MongoID https://github.com/mongoid/mongoid बुलाया

इस तरह आप एक सीएमएस जो बहुत बड़ा समुदाय है (रिफाइनरी) की तरह उपयोग कर सकते हैं भी एक उत्कृष्ट रत्न है। इसके अलावा अधिक: अपने DB बैकअप आसानी से हल किया क्योंकि तुम Git के साथ किसी भी समय वापस रोल या बस कभी कभी अपने डीबी क्लोन करने के लिए सक्षम हैं, यह भी आप, बैकअप automatize कर सकते हैं आदि

HTH

4

Gollum (https: // GitHub। कॉम/जिथूब/गॉलम) सिनात्रा में गिटहब द्वारा लिखित एक गिट-संचालित विकी है। आप कमांड लाइन से पुश और पुल कर सकते हैं या सामग्री को संपादित करने के लिए शामिल वेब इंटरफ़ेस का उपयोग कर सकते हैं।

दुर्भाग्यवश ऐसा लगता है जैसे गिटहब में कुछ विकास/रखरखाव छोड़ देता है, इसलिए इसमें कुछ मोटा किनार हैं। यह भी बहुत बुनियादी है, इसलिए इसमें प्रमाणीकरण [1] जैसी विशेषताएं शामिल नहीं हैं।

मैं गोल्लम साइट (https://github.com/dreverri/gollum-site), गोल्लम के लिए एक स्थिर फ़ाइल जनरेटर के साथ गॉलम का उपयोग करने वाला हूं, और केवल गॉलम को व्यवस्थापक बैकएंड के रूप में उपयोग करें।

1: प्रमाणीकरण करने के लिए एक बुनियादी समाधान https://github.com/github/gollum/issues/107#issuecomment-2608061


में पाया जा सकता वहाँ भी विनियमित है, https://github.com/quickleft/regulate:

रेल 3 इंजन एक Git समर्थित सीएमएस कि किसी व्यवस्थापक की अनुमति देता है प्रदान करता है कि एक पृष्ठ दृश्य में संपादन योग्य क्षेत्रों को परिभाषित करने के लिए।

संबंधित मुद्दे