[Zope] Upgrading 2.4.4 to 2.5.1: data migration problem with invisible Python Scripts

Milos Prudek milos.prudek@tiscali.cz
Mon, 24 Jun 2002 10:45:03 +0200


To copy data from Zope 2.4.4 to Zope 2.5.1, I decided against moving 
Data.fs, and instead relied on the following procedure which somehow 
brought much pain as it created "invisible" Python Scripts:

- Create a folder in 2.4.4. called 'export'.
- Copy almost all content from root to 'export' (except acl_users, 
Control_Panel, QuickStart)
- Export the 'export' folder to a file 'export.zexp'
- Export my ZClasses to a .zexp file
- Shutdown Zope 2.4.4
- Install and run Zope 2.5.1
- Import the 'export.zexp'
- Move files from the 'export' folder to root.
- Import the ZClasses.
- Copy external methods from Zope 2.4.4 Extensions folder to Zope 2.5.1 
Extensions folder

This worked OK on my local setup (heavily patched RedHat 7.1, Python 
2.1.3 compiled from sources), and it APPEARED to work well on the 
production server (some sort of Slackware, Python 2.1.3 compiled from 
sources).

All ZODB content appeared to be OK, but calling any of many Python 
Scripts from a DTML method ended in an error "Global name <script_name> 
not found". Of course <script_name> was right there, and it was possible 
to access it through direct URL (http://myserver/<script_name>), but 
when it was called from a DTML method it always failed with "Global name 
<script_name> not found".

I tried the following:

- rename <script_name> to a different name, and use that change in the 
calling DTM method. Problem persists.

- delete <script_name>, and push it from local server using ZSyncer. 
Problem persists.

- delete <script_name>, create an empty Python Script with ZMI, and 
copy&paste source from local Zope ZMI. Problem disappears!

The above was true for at least five Python Scripts that have exhibited 
this problem.

-- 
Milos Prudek