Pencils down
I’m done with my plugin. I’ll be uploading it to the WordPress plugin directory soon – thanks for the great time, everyone!
I’m done with my plugin. I’ll be uploading it to the WordPress plugin directory soon – thanks for the great time, everyone!
This week I added the security token to all requests and fixed up some big UI problems. It should be easy enough and secure enough for an initial release – I’ll be uploading it to the WordPress Plugin Directory soon.
I’ll only be doing code cleaning, bug fixes, security fixes, etc. for this next week. Please get in contact if you want anything fixed.
This week I added a little bit of security to the plugin. It now requires a secret token to be sent when initialising the database. I’m working on adding it to every XML-RPC request that is placed.
I also added an error message when JavaScript is disabled, cleaned up some of the UI and added more documentation.
I’d like to be able to get rid of the wp-config.php textarea because it’s not user friendly or secure. I’ll try to figure out a nice way to do that.
This week I have spent some time adding documentation to my plugin. I wanted to create some functional tests but there is almost no code that doesn’t rely on some sort of external resource (it is a migration plugin, after all).
I have a few ideas to make the plugin more stable and manageable and will be implementing them for this next week.
University has started back up for me. It’s going to be a fun semester.
Last week I ran my plugin in different environments, trying to make it break (I got it to a few times). I’ll be fixing the problems I’ve found this week.
I’m still looking for people to help test out my plugin. I realise that it’s a bit tricky (having an (S)FTP server available, etc) but I’d love to get this plugin working as well as I possibly can. Extra points for anyone testing it out in rare environments (I’ve only been able to test a few Linux distros and Windows).
I’d like to see other plugin authors test their plugins after migration – I’ll be putting in a hook for you to fix any migration problems.
If you’re able to test it out, let me know how it went – brian@brianmckenna.org
This week I fixed some FTP problems and combined it with my data migration. I also spent some time to make both work with new installs of WordPress (existing installs work fine).
I’m looking for people to start testing this for me. I’m interested in hearing any problems or suggestions for the plugin.
Here’s a zip archive of the 2010-07-13 version:
http://brianmckenna.org/files/wp-migration-2010-07-13.zip
This version exposes some security holes – I don’t recommend using it on production websites. If you need any help or have an problems, you can email me, brian@brianmckenna.org
Press the Migrate button under Settings
Enter in the FTP credentials (at the moment this form requires a password – sorry, no anonymous logins)
This brings up a path browser, you can browse to the directory you want to move to
When you’re in the directory you want to migrate to, press Use this path
You then have to put in:
The plugin will now start migrating things – it’s finished when the Loading… message disappears
Lots of messages will show, telling you that it transferred files and that it migrated posts, settings, etc.
That’s the total workflow – and it kind of sucks. I’ll be talking to the WordPress UI team soon so that we can sort the mess out. Until then, help me out with making it much more stable!
This week I continued writing automatic FTP migration. It now does a recursive list of all files on the local install and then transfers 10 at a time across to the remote FTP server. I’m going to work on intelligently transferring a threshold of bytes across instead of a hard number of files.
AJAX initiates the transfers and reports the status back to the user.
All of this means that WordPress is close to being self-replicating!
After I have created the smarter file transfer, I’ll be working on asking the user for their new wp-config.php values so that data can be migrated (the part I worked on before FTP).
This week I’ve worked on adding FTP migration. Files from the origin site are transferred to the destination server.
It’s a bit tricky because I have to work around PHP’s max_execution_time limit. I’m going to store a flattened list of files on the origin server and then transfer them over in batches to hopefully overcome the problem. This should also make it a bit easier to incorporate with AJAX.
You can checkout the project form http://gsoc.svn.wordpress.org/2010/pufuwozu/
Thanks,
Brian McKenna
Is it worth scheduling a job for each file?
I’ve been very busy this week but I’ve made some steady progress. Attachments, comments and links now transfer fairly well! With the data, I should only need to fix up taxonomies and I’ll hopefully be finished.
I’ve also tested the plugin out on different systems. The plugin successfully migrates across my home computer, work computer and Dreamhost server! I’ll continue testing it out on different systems.
I fixed up the one line of code that broke with the WordPress 3 release.
The next stage is to start on FTP migration. The user will put in the FTP details for the remote server, the plugin will then upload all of the files and then transfer the data through XML-RPC. I will probably use AJAX to report the upload status.
SVN log:
The plugin is starting to work pretty well. Most of the WordPress data is being transferred successfully. This week I’ll spend some time working on the rest of the WordPress data (attachments, links, etc) and testing it in some new environments.
Installing the current plugin:
cd wp-content/plugins
svn co http://gsoc.svn.wordpress.org/2010/pufuwozu/ wp-migration
Nuno Morgadinho 7:32 pm on September 27, 2010 Permalink |
Hi Brian,
Has this been done already? Couldn’t find it..
Thanks,
Nuno