[wp-hackers] GSoc - Idea: Import/Export+Move WP

Perro Hunter perro.hunter at gmail.com
Sat Mar 20 21:20:46 UTC 2010

Hey there everyone !

I'm a computer science engineer student from Mexico 
and this is the first year I'll try out for GSoc

I'm really exited on getting a chance to contribute 
with wordpress since it's a really popular piece of software :) 

I think i've got some ideas to develop some of the ideas
that you proposed this year and I'd love to hear some feedback from
you. While reading them the first 2 that got my attention were the
Blog Import/Export feature and the Moving Wordpress feature since
I've already had to move a wordpress installation before and I know it
was sorta uncomfortable, from those experience I think I can start
something, let me know what you think :)

Blog Import/Export idea:

The thing here is that we not only need to move a huge number of post
we also need to move comments, pages, tags, categories and links current
import/export feature would give you a dump of XML that you can take to a 
new wordpress installation and upload it yourself. This sometimes is nasty if 
the xml dump is huge, also this dump doesn't help you export/import the media
those post are using which is a problem since most of the users don't know how
to deal with FTPs and they should't have to deal with downloading everything to
their PC's and uploading it to the new server.

For this I propose a Plugin that would be needed to be installed on both wordpress
, I'm not sure yet wheter we should attack the next problem from the original
installation or from the target installation.

If we were doing this from the source installation we'd need to first make sure
the plugin is ON on the target installation, we would use the admin user and password
to authenticate remotely.

I know we have to move a great number of post-objects (posts,comments,categories,etc)
for this one we are going to create a queue of things that are going to be exported, this
could latter allow users to personalize what are the elements that they'd like to move only, then
we'd run a quick scan on each of the queued elements to see the media they are using
and queue those file on the table too, I'm using this queue table first so when we start
moving the elements and files from one installation to another if the script timeouts we can
restart the process and take off where it stopped last time ;)

Once the queue is ready to go, we even got a way to calculate percentage ( 1/3000 elements to move = 0.03%)
we'd start calling the move method, on the user interface we could have an ajax call
that refresh the status of the script every X seconds or minutes, it could get a new percentage
number to display and even reactive the moving script if it already timed out. Every time
an element was successfully moved it'd be mark as it on the queue, we could move
a large number of post-objects (posts,comments) using curl from one server to another,
I know server to server bandwidth is way better than home-bandwidth, on the target
installation the plugin would be receiving all the elements and inserting them in to the db
with their proper category, tags and everything.

We could use the same procedure when moving medie if the max post value of the target
server allow us to send these files via post, or we could use FTP so after moving successfully
a file we'd notify the target installation plugin about the new file so i can work is the way it want's
(we'd FTP to a tmp folder)

For small blogs this process could take less than a minute, for huge blogs it could take a couple
of hours I don't know we'd need to benchmark this a little, but I think this is the best way to
Import/export wordpress without having to get your hands dirty :P

this could also be extended to be compatible with old versions of WP

What do you think?

Now, this very same algorithm could be used for the next idea:

Moving a Wordpress installation from one domain to another:

For this one we would definitively need FTP to move the basic installation, the target server DB name, user and password, and after moving the essentials of the installation we could start doing the rest with the old procedure(queue items, start cleaning the items periodically)

Two features could be archived with this same idea, please tell me if you think there's something missing
or your thoughts

Cheers ! :D 

More information about the wp-hackers mailing list