سؤال

أحتاج إلى ترقية نظام قديم يعتمد على Zope، أحتاج إلى أن أكون قادرا على تصدير البيانات إلى شيء مثل SQL Server ... هل يعرف أحد بأي طريقة يمكنني فتح Zope DB في .NET أو قم بتصديرها مباشرة إلى SQL Server ب

شكرا، kieron.

هل كانت مفيدة؟

المحلول

أنا مطور ويب مسرحي، وجاسون كومبس صحيحة. ZODB هي قاعدة بيانات كائن، وتحتوي على كائنات بيثون. يمكن أن تكون هذه الكائنات رمز Python والبيانات والبيانات التعريفية وما إلى ذلك وتخزينها في التسلسل الهرمي. هذا مختلف تماما عن عالم جداول SQL والإجراءات المخزنة. (توضح حركة NOSQL المتنامية، أن Zope ليس هو الوحيد الذي يقوم بهذا.) بالإضافة إلى ذلك، نظرا لأن هذه كائنات بيثون معقدة، فأنت تريد أن تعمل حقا على ZODB مع إصدار Python، أو تأكد من أنك يمكن أن تفعل الترحيل المناسب. لا أعتقد أنك ستكون قادرا على القيام بذلك مع IronPython.

دون معرفة ما تحاول الخروج من ZODB، من الصعب تقديم نصيحة محددة. كما اقترح جيسون، قد يكون الوصول إلى WebDAV / FTP الوصول إلى ZODB كل ما تحتاجه. يتيح ذلك سحب المحتوى الأساسي للصفحات أو ملفات الصور، ولكن قد تفقد الكثير من البيانات الأكثر تعقيدا (على سبيل المثال قد لا تحتوي صفحة الحدث على جميع بيانات DateTime المضمنة) وسوف تفقد الكثير من META -بيانات.

هنا هو كيف هاجر شخص ما من Plone إلى Word Press:

http://www.len.ro/2008/10/plone-to-wordpress-migration/

هناك عدد من المقالات عن الترحيل من إصدار واحد إلى آخر. بعض هذه المعلومات ربما مفيدة لك. لا يسمح لي Stackoverflow بنشر المزيد من الروابط ولكن البحث عن:

"عندما تفشل ترحيل Plone في إجراء ترحيل المحتوى فقط"

"Plone Controundmigration"

نصائح أخرى

أول شيء مهم يجب ملاحظته هو أن قاعدة بيانات كائن Zope (ZODB) يخزن كائنات Python في التسلسل الهرمي. لذلك، الحصول على "البيانات" من ZODB عموما لا معنى له خارج لغة بيثون. لذلك إلى حد ما، يعتمد ذلك حقا على نوع البيانات التي تريد الخروج منها.

إذا كانت البيانات التي تبحث عنها هي الملفات (مثل HTML، المستندات، وما إلى ذلك)، فقد تكون قادرا على الوقوف إلى خادم Zope وتشغيل شيء مثل WebDAV أو FTP واستخراج الملفات بهذه الطريقة.

ومع ذلك، فإن الطريقة التي وصفتها بها، ومع ذلك، أظن أن البيانات التي تبحث عنها هي عناصر بيانات جيدة أكثر غرامة (مثل الأرقام أو الحسابات أو بعض الشيء من هذا القبيل). في هذه الحالة، ستحتاج بالتأكيد إلى الثعبان تقريبا لاستخراج البيانات وتحويلها إلى تنسيق مناسب للاستيراد إلى SQL Server. قد تكون قادرا على البقاء داخل World .NET World باستخدام IronPython، ولكن لأكون صادقا، أود تجنب ذلك ما لم تتمكن من العثور على دليل على أن IronPython يعمل مع مكتبة ZODB.

بدلا من ذلك، أقترح إنشاء نسخة من تثبيت Zope and Zope. شكل مناسب. قد تستخدم شيئا مثل Pyodbc للاتصال بقاعدة بيانات SQL Server لحق البيانات - أو قد تصدير وتتصدير إلى بعض تنسيق الملفات واستخدام الأدوات التي تعرفها بشكل أكبر لاستيراد البيانات.

لقد مر بعض الوقت منذ أن تفاعل مع ZODB، لكنني أتذكر هذه المقالة كان مفيدا في مساعدتي التفاعل مع ZODB وفهم هيكله.

حظ سعيد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top