Sneak Peek Video: Push & Pull Between Multisite Subsites & Single Site Installs

Multisite Tools

We’ve had some fantastic feedback on the “Export a subsite as a single site install” feature that our Multisite Tools addon for WP Migrate DB Pro enables. Chief of which have been “Hurry up with Push with media already!” and “How about importing a single site install into a subsite then?”. Well, guess what we’ve been working on recently…

Push a Subsite to a Single Site Install

In an upcoming version of our Multisite Tools addon, push migrations from a multisite install to a single site install of WordPress will have a “Push specific subsite” checkbox. Once you’ve picked a subsite from the list, the target table prefix is automatically set and the Find & Replace rows and list of tables are also updated to match. See the following screenshot for an example.

Push Subsite to Single Site Install

The list of tables you can select for migration is narrowed down to those specific to the subsite, plus the global users and usermeta tables.

All the other options usually available for a push migration are still enabled, including the Advanced Options, Backup Tables and of course Media Files.

This means that if you have the Media Files addon, you no longer need to hunt down the media files for the subsite and manually transfer them to the new site. Multisite Tools takes care of copying the files to the new site and ensuring all links to them are correct in the newly updated site.

The users pushed to the single site install are only those that are currently a member of the subsite, or are authors of migrated content.

To see this in action, check out the video at the top of this article that shows a speed run of pushing a subsite to a single site install, adding users and content and then pulling it back into a subsite.

Pull a Single Site Install Into a Subsite

The upcoming version of Multisite Tools also includes a “Pull into a specific subsite” checkbox when setting up a pull migration on a multisite install of WordPress that is connecting to a single site install. Now when you check the box and select a subsite to pull into, the target table prefix is automatically set and the Find & Replace rows and list of tables are updated as appropriate. The following screenshot shows an example of this.

Pull Single Site Install Into Subsite

All the other options usually available for a pull migration are still enabled, including the Advanced Options, Backup Tables and of course Media Files if you have the Media Files addon.

Multisite Tools takes care of copying the Media Library files into the subsite and ensuring all links to them are correct in the newly updated site.

Where possible, the users being pulled into the subsite are matched up with existing users via their username and email address, as long as they are also a member of the subsite already. If there is no match then the user is imported along with their metadata. Either way, the migrated posts and comments are updated to ensure the correct user record is referenced in the subsite.

Again, the video at the top of this article shows this in action.

Great Power, Great Responsibility

You may be thinking, “Finally, I can setup one multisite install for developing all my client sites.” While you certainly can do this easier than ever now, just because you can doesn’t mean you should. Instead, we recommend setting up your development environment to mirror the production environment as closely as possible. So if the site will be a single site install in production, set it up as a single site install in development. You’re much less likely to run into issues after moving the site to production if the two environments are similar.

Gimme gimme gimme!

Whoa, hold yer horses! This version of Multisite Tools is currently wrapping up development, and then we’ll be giving it a very rigorous testing phase to ensure it works as intended in as many scenarios as we can muster. The development for these features required some important changes under the hood of WP Migrate DB Pro, and sets up a strong foundation for planned future enhancements. As such, we can’t give you a date for when it’ll be available, but rest assured we’re working as hard as we can on it as we know it’s much sought after functionality.

Please post any questions in the comments below and we’ll do our best to answer them.

About the Author

Ian Jones

Ian is always developing software, usually with PHP and JavaScript, loves wrangling SQL to squeeze out as much performance as possible, but also enjoys tinkering with and learning new concepts from new languages.

  • Whoa! That’s impressive stuff Ian. Can’t wait to get hold of the release. Kudos to you and all Delicious Brains. Very tasty πŸ™‚

  • Wozn2

    I love this feature – a useful addition to what is for me, an essential WordPress development tool.

    One thing I would really like to see in WP Migrate Pro in general is the ability to sync the active theme – I often work on local development where the theme and content are being developed in tandem and then uploaded to a server for demos / evaluation.

  • Looks really useful, I am looking forward to using this…

    Did I spot in the video a future option to pull plugins down too?

    • Nope, just settings, but we’re definitely considering adding migrating theme files for a future version, it’s been asked for quite a bit.

      • yeah I bet, I always get it when I go back in and pull down a client site and they have installed a load of plugins since I last synced and they have to be downloaded separately. Maybe an add-on like the media one for Theme and Plugin stuff

  • then Ian #DROPStheMICROPHONE

  • Aubrey Portwood

    Nice work!

  • Chris Botterill

    This is great. We currently operate a multisite install with domain mapping for about 100 clients but have hundreds more that are still on stand alone installs that we want to move into our multisite system. Looking forward to trying this out.

  • nicmare

    awesome! but when do one need this? the only case i can imagine for myself: i have a multisite setup and i want to sell one subsite to a new owner. so i need to detach it from that setup. then wp migrate makes that an easy task.

    • The most popular reason we’ve been given for wanting to split a subsite out to its own install is that sometimes a subsite gets popular enough that it needs to be moved to its own single site install for performance.
      There are other reasons, like selling the subsite, changing hosting providers for a better deal etc.

    • Silvio

      I recently developed a site for a client as single site – so my whole setup in the dev process, local, staging, live was single. Then right before launch it was decided to include this single site into the multisite of my client. How amazing it would have been if I could have just pulled it into the multisite!! And then just could have continiuned with my setup – oh yes, really awesome πŸ™‚

  • Great job, I really want this πŸ™‚

  • +1 can’t wait for the release

  • Where’s the migration logfile? A ton of things can go wrong. BackupBuddy migration tool has a detailed log of every step it does, immensely helpful in diagnosing issues.

    • If there are errors then we log them in the Diagnostic Info & Error Log found in the Help tab of the plugin, and using our backup option is always a good idea. At present we don’t keep an exhaustive log for push and pull migrations, I guess an export sql file is its own log of sorts. I’ll add logging push and pull sql as a feature request for consideration.

      There is another upcoming feature that might help give you peace of mind in a similar way to a log file, but that’s something to be revealed in due course!

  • Pete Davenport

    This is very nice. It’s almost a work of art. I’m so tired of doing manual migrations into and out of multisite. A tool like this has been a long time coming. I’m really looking forward to using this.!

  • Hey guys. Happy holidays. Is the subsite -> subsite migration available in the addon yet?

  • Multisite Tools 1.1 has just been released, enjoy!

    • Was there ever a blog post about this release?

      Also, you may want to create separate documentation for these new features. Right now, it’s all jumbled together with manual migration info, and the text still reads, “Features we are looking at in the future,” etc.

      This lack of release info was quite confusing. And the fact that your blog is most about WordPress things unrelated to your plugins just adds to that confusion. I have to keep looking for this post everytime I want to create a new subsite.

      • Hi Jason,

        As we’d already sneak peeked the new features, we didn’t blog about the actual release, but you’re right, we probably should have, especially as it was a little while between peek and release. We’ll definitely blog for the next release.

        We did tweet about it though, and Brad talked about it on the Apply Filters podcast, and of course people with the plugin saw all the updates when released. But those waiting to buy when MST 1.1 was released didn’t get the heads up via the blog, which was a mistake.

        As for the docs, can you link up the doc that is confusing? The MST addon’s own doc is up to date and talks about the push/pull and then export stuff (https://deliciousbrains.com/wp-migrate-db-pro/doc/multisite-tools-addon/), and the manual export doc already has a note at the top mentioning that MST 1.1 has a better way of doing it (https://deliciousbrains.com/wp-migrate-db-pro/doc/exporting-single-site-as-subsite-for-multisite-install/).

        Did we miss a doc?

        • First, thank you for the quick reply. It’s always a pleasant surprise when a principal answers a ranty comment πŸ˜‰

          I’ve been thinking about this issue for awhile (first, note that your documentation was undated only weeks after the addon dropped), so I felt the need to say something when I still saw issues two months later.

          As you asked, here’s what’s still problematic:

          Those two manual support docs simply need a way more noticeable callout at the top. That note is way to easy to skip.

          At the same time: Is there any reason why these instructions aren’t just depreciated in light of the new addon version?

          How?

          1) By using the word “depreciated” right on the page title)

          2) When you go to the main documentation page (which should also be linked beneath the addon itself on the addons page), the only two “multisite” posts you see are these outdated ones. Do they need to be there at all?

          Even if you manage to navigate to the “multisite” subsite in the left nav (which many visitors won’t ever see), guess what? The same outdated documentation is the first post here, too.

          So, to find the new, easier, higher value, more sales-generating instructions, you’d have to click on “Multisite Tools Addon” (and no one is going to do that because the title doesn’t say, “NEW Multisite Tools Addon 1.1” or something).

          Then, you’d have to decipher what the tool can actually do (because the “Future Features” section is just as prominent as the ACTUAL FEATURES, and you wouldn’t know when this documentation was written unless you scrolled all the way to the bottom of the post).

          Plus, all the tools’ features are jumbled together in one postβ€”unlike the depreciated posts (which, for all their faults, at least walk through the manual multisite push/pull instructions quite nicely.

          * * * * *

          I know this all might seem fine from the inside, but as an outside user, I’m pretty sure this UX is likely happening to many other customers. You could actually verify my hypothesis by looking at the page views. Since 1.1. rolled out, how many do the old multisite docs receive? What about the new ones?

          Regardless, I would think that you’ll want to put these new features front and center, since you’re solving a problem very few other companies have been able to crack.

          I used this plugin today for about three hours, and I can tell you I am very happy with the results. The only thing I’d ask is that you make figuring out the process even easier for other users.

          On that related note, I think I needed about 15 discreet steps to pull over a multisite. Obviously, your plugin does the heavy lifting, but I don’t think the process is as simple as your (new) documentation makes it out to be.

          I attached a portion of my notes I took during the procedure, if that’s any help πŸ˜‰

          * * * * *

          Your product is incredible, and your documentation is 30 minutes away from being likewise.

          I hope this helps, and I’d appreciate if you let me know whether you found these thoughts useful.

          Thank you!

          • Fantastic, thank you very much for taking the time to detail what’s wrong with our current documentation for Multisite Tools (and quite frankly, our other addons too). That’s very valuable feedback.

            I’ve added your entire comment to an issue to be resolved with the next release of MST, we’ll do our best to make the docs easier to find and follow. It might just be the catalyst for improving all our docs.

            We probably won’t remove the manual instructions doc for exporting and importing single site installs and subsites as it’s linked to from all over the place, and still applicable if you’re not using MST. It’s actually pretty good for marketing to show a way to do something “the hard way”, but link to the easier way. However, we’ll definitely make it more obvious that it is deprecated now that MST exists, our marketing is a bit too light touch there.

            Thanks again Jason, very much appreciated.

  • Marc

    Looks awesome! Migrate DB gets more and more irreplaceable for a proper workflow! Keep up the great work.

  • Awesome, can’t wait for the update! Is it an idea to setup an uservoice page ( eg. wpbeaverbuilder.uservoice.com ) to let users propose and vote for new features?

    • I think we’d rather have one to one conversations with our customers via our existing support process, it’s much better for having a proper conversation about the feature request.
      So, please just email us any suggestions and we’ll look into them for future releases.