DEV Community

Cover image for How to unpack .wpress archive files created by the All-in-one-Wp-Migration Wordpress plugin
Felix Haus
Felix Haus

Posted on

How to unpack .wpress archive files created by the All-in-one-Wp-Migration Wordpress plugin

Recently I needed to download some files from a Wordpress installation where the client only gave me access to the admin dashboard. Fortunately the All-in-One WP Migration plugin was already installed, so I could take a quick backup of the whole site by downloading the installed plugins, theme and database.

To my surprise downloading the backup from the All-in-One WP Migration plugin only gave me a single compressed migration.wpress file that any unpack tool refused to extract. A little web search brought me to a five year old tool called Wpress-Extractor but the provided binaries for MacOS refused to work because the package was already too old.

So I decided to rewrite this little helpful tool in Node.js to make it cross-platform compatible for Windows, MacOS and Linux.


Ok here it is: A simple 2-step tutorial how to extract a file with the .wpress extension on your computer:

1. Step

Make sure that you have Node.js installed in your computer:

node --version
# => v14.12.0
Enter fullscreen mode Exit fullscreen mode

2. Step

In your terminal navigate to the location where the .wpress file is downloaded (e.g. ~/Downloads) and run the following command:

npx wpress-extract migration.wpress
Enter fullscreen mode Exit fullscreen mode

It then creates a new folder migration/ where the content is extracted into.


That's it for today. If you would like to take a deeper look at this tool, the source code is open source, so feel free to visit the GitHub repository:

GitHub logo ofhouse / wpress-extract

A simple Node.js tool for extracting wpress archive files generated by the All-in-one-Wp-Migration Wordpress plugin.

Top comments (56)

Collapse
 
goatcloud profile image
Cliff Rohde

Really brilliant, Felix. Many thanks for posting this.

Collapse
 
blmurch profile image
blmurch

Thank you so much! Worked like a charm.

Collapse
 
erionbrace profile image
erionbrace

Can someone help me understand how to navigate to the location where the .wpress file is downloaded because I don't know how to use node.js

Collapse
 
ofhouse profile image
Felix Haus

Which operating system (MacOs, Windows, etc.) do you use?

Collapse
 
erionbrace profile image
erionbrace

I use Windows

Thread Thread
 
ofhouse profile image
Felix Haus

Assuming the .wpress file you want to extract is in the "Downloads" folder you should be able to navigate there by running the following command in your CMD/Powershell first:

cd "$HOME\Downloads"
npx wpress-extract <downloaded-file.wpress>
Enter fullscreen mode Exit fullscreen mode

Other options to navigate to the Download folder in CMD/Powershell are shown here: stackoverflow.com/a/57950443/831465

Thread Thread
 
ofhouse profile image
Felix Haus

You could also open a CMD session right from the explorer by typing cmd right in the address bar of the explorer: howtogeek.com/235101/10-ways-to-op...

This will open a new terminal session from the directory that is opened in the explorer and you could start extracting:

npx wpress-extract <downloaded-file.wpress>
Enter fullscreen mode Exit fullscreen mode
Thread Thread
 
erionbrace profile image
erionbrace

After following all your instruction, now it says:
Error: Output dir is not empty. Clear it first or use the --force option to override it.

Thread Thread
 
ofhouse profile image
Felix Haus

This happens when a directory exists with the same name as the downloaded file.
e.g. when your file is named my-backup.wpress and there is a folder /my-backup in the same directory the extraction is stopped since it would override the content in the /my-backup folder on extraction.

You could simply rename the .wpress file (e.g. from my-backup.wpress to my-backup-1.wpress) to workaround this.

Thread Thread
 
erionbrace profile image
erionbrace

I can't thank you enough. This really helped me. Wish you all the best

Thread Thread
 
erionbrace profile image
erionbrace

Out of curiosity, is there any way to convert a regular file to a .wpress file?

Thread Thread
 
ofhouse profile image
Felix Haus

The reverse direction (creating a .wpress file from a directory) is a bit more complicated.
Inside the .wpress file are stored some metadata (e.g. installed plugins, Wordpress version etc.) that are not available in a local file context.
When providing this metadata manually, it would be possible to create a .wpress file.
But this is out of scope for me since I currently have no time to extend the tool further.

Collapse
 
deborahtrez profile image
Aanyu Deborah Oduman

Just like that! I didn't even have to download shit. Thank you!!

Collapse
 
jakeadriano profile image
Jake Adriano

I created an account here just to say: thank you. Thank you so very much. Works like a charm.

Collapse
 
ofhouse profile image
Felix Haus

Haha, nice 👍
Messages like yours always make my day a little brighter, thanks for your support!

Collapse
 
tko profile image
TKO

I've been struggling trying to extract files from a corrupted backup using the instructions you provided. Is there a video or a more detailed step by step tutorial on how to extract files from a .wpress file? Preferably using terminal

Thread Thread
 
ofhouse profile image
Felix Haus • Edited

The program itself works sequentially, so when the beginning of the file is correct it extracts the files up to the point when the file becomes corrupted.

While writing the program I used Visual Studio Code to take a look inside the .wpress files.
It is at least able to show the source code from the files that are packaged inside the archive.

Collapse
 
vaclav_keil profile image
Václav Keil

Hi Felix, Thank you very much for this tool. I like the way the JavaScript programming was done. If only more npm packages could be simple yet effective like yours.
It runs with the current LTS version of Node.js.

Collapse
 
arnoldflexy profile image
ArnoldFlexy

Thank you so much, it worked!!!

Collapse
 
ofhouse profile image
Felix Haus

Great to hear, happy to help 😊

Collapse
 
evoratec profile image
Juan Antonio Navarro

Great tool. Thank you very much.

Collapse
 
ofhouse profile image
Felix Haus

You are welcome, thanks for the feedback 😊

Collapse
 
ardelisinbaking profile image
ardelisinbaking • Edited

the tool installed nicely, and extracted the .wpress file nicely, but flywheel wont accept the import for some reason: We couldnt figure out what to do with the import file provided. Please extract it manually.; it looks extracted to me though..

Collapse
 
wazoooguru profile image
WazoooGuru

Solved my issue where I had a backup from a Multi-Site that I could not import unless I purchased an insanely expensive All-In-One extension. Also couldn't import it into Single site setup or even FTP transfer the 5GB file into the dev server due to size. I literally just needed the image directory. Anyways - THANKS!

For clarity to noobs like me (relatively), I may offer these tips to get it to work on a Mac Terminall:

  1. The Terminal command to navigate to a directory is: cd ~/DirectoryName not just ~/DirectoryName
  2. I had to replace the word 'migration.wpress' in 'npx wpress-extract migration.wpress' with the actual file name, so the command is 'npx wpress-extract FileName.wpress'

Good luck!

Collapse
 
axltrauts profile image
🍜 Stuart Graham

Hi, can you please show me the steps you take to restore the backup on the new server?

I uploaded the extracted files, overwrite the duplicate files and run the SQL within. So far it looks like nothing happened, the wordpress looks like a new installation.

Collapse
 
volverainc profile image
volverainc

very helpful, thanks a lot!

Collapse
 
brams_s profile image
Brams

Amazing tool! Exactly what I was looking for when trying to migrate a website to a different server. Currently abroad with very slow internet here. Decided to make a DigitalOcean droplet and use its fast connection to download the 5GB migration file directly to the server with curl.

Then I needed a way to unpack the wpress file and your npx tool came in clutch. Saved me 3+ hrs of download time. Thank you very much!

Collapse
 
tko profile image
TKO

Is there a video that demonstrates how to unpack .wpress archive files using a Mac?

Collapse
 
ofhouse profile image
Felix Haus

No, since the process and used commands are the same whether you are using a Mac, Linux or Windows machine.

Thought about making a video from it, but then discarded the idea since it would only show me how I would badly type in the command from the post in my terminal 😅

Collapse
 
deborahtrez profile image
Aanyu Deborah Oduman

Could you be knowing how to deploy the extracted site to GitHub with gh-pages?

Collapse
 
ofhouse profile image
Felix Haus

Not sure if I understand your question correctly.
Since Wordpress requires a PHP runtime which gh-pages does not provide, uploading .php files would only result in people seeing the source code when visiting the GitHub page.

Collapse
 
vpn profile image
Patrick

Thanks for this!