Есть ли способ открыть Zope DB в .Net? - PullRequest
1 голос
/ 13 марта 2010

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

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

Ответы [ 2 ]

2 голосов
/ 13 марта 2010

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

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

Вот как кто-то мигрировал из Plone в Word:

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

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

"когда перенос Plone не выполняется только при переносе контента"

«Миграция контента продукта Plone»

2 голосов
/ 13 марта 2010

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

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

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

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

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

Удачи!

...