Вопрос

Мне нужно обновить старую систему, основанную на Zope, мне нужно иметь возможность экспортировать данные во что-то вроде SQL Server...кто-нибудь знает способ, которым я могу открыть Zope DB в .NET или напрямую экспортировать его на SQL Server?

Спасибо, Кирон

Это было полезно?

Решение

Я простой веб-разработчик, и Джейсон Кумбс прав.ZODB - это объектная база данных, содержащая объекты python.Этими объектами могут быть код Python, данные, метаданные и т.д., которые хранятся в иерархии.Это сильно отличается от мира таблиц SQL и хранимых процедур.(Растущее движение NoSQL показывает, что Zope не единственный, кто делает это.) Кроме того, поскольку это сложные объекты python, вы действительно хотите работать над ZODB с той версией python, с которой он был создан, или убедиться, что вы можете выполнить надлежащую миграцию.Я не думаю, что вы сможете сделать это с помощью IronPython.

Не зная, что вы пытаетесь извлечь из ZODB, трудно дать конкретный совет.Как предположил Джейсон, попытка доступа WebDAV / FTP к ZODB может быть всем, что вам нужно.Это позволяет извлечь основное содержимое страниц или файлов изображений, но вы можете потерять большую часть более сложных данных (например, страница события может содержать не все данные даты и времени), и вы потеряете большую часть метаданных.

Вот как кто-то перешел с Plone на Word press:

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

Существует несколько статей о переходе с одной версии Plone на другую.Кое-что из этой информации может быть вам полезно.stackoverflow не позволяет мне размещать больше ссылок, но выполняет поиск:

"когда перенос plone завершается неудачей, выполняется только перенос контента"

"Миграция содержимого продукта Plone"

Другие советы

Первая важная вещь, на которую следует обратить внимание, - это то, что база данных объектов Zope (ZODB) хранит объекты Python в своей иерархии.Следовательно, получение "данных" из ZODB, как правило, не имеет смысла за пределами языка Python.Так что в какой-то степени это действительно зависит от типа данных, которые вы хотите получить.

Если данные, которые вы ищете, представляют собой файлы (такие как HTML, документы и т.д.), вы могли бы подключить сервер Zope и включить что-то вроде WebDAV или FTP и извлечь файлы таким образом.

Однако, судя по тому, как вы это описали, я подозреваю, что данные, которые вы ищете, представляют собой более мелкозернистые элементы данных (например, числа, учетные записи или что-то в этом роде).В этом случае вам почти наверняка понадобится какой-нибудь Python для извлечения данных и преобразования их в некоторый формат, подходящий для импорта в SQL Server.Возможно, вы сможете оставаться внутри .NET world, используя IronPython, но, честно говоря, я бы избегал этого, если вы не сможете найти доказательства того, что IronPython работает с библиотекой ZODB.

Вместо этого я предлагаю создать копию вашей установки Zope и экземпляра zope (чтобы вы не нарушали работу запущенной системы), а затем использовать версию Python, используемую Zope (часто устанавливаемую вместе), для монтирования базы данных и преобразования ее в подходящий формат.Вы могли бы даже использовать что-то вроде PyODBC для подключения к базе данных SQL Server для ввода данных - или вы можете выполнить punt, экспортировать в какой-либо формат файла и использовать инструменты, с которыми вы более знакомы, для импорта данных.

Прошло много времени с тех пор, как я взаимодействовал с ZODB, но я помню эта статья сыграл важную роль, помогая мне взаимодействовать с ZODB и понимать его структуру.

Удачи вам!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top