I was recently struck by this as well, and here is what I did:
- I backed up the blog (I exported XML from withn in WP, and SQL from phpMyAdmin)
- I deleted my old version and installed a fresh, up to date WP instance
- Then I re-imported the blog structure (XML)
Apparently I thought my pages were gone, until I discovered they were just downgraded to posts. That means my pages were indeed saved in the XML export but without menu_order attribute, since WP thought they were posts.
No problem, since post_parent was still saved in XML, even for posts. So I did this to make convert the posts into pages.
UPDATE wp_posts
SET post_type = 'page'
WHERE
post_parent
!=0
WP still wouldn’t list them, so what I did then was to edit them using page.php?action=edit&post=xx which made them show up in the listing and work correctly from the index.php as well. What I’m wondering now is, do I have to do anything more than that to fully convert a post into a page?