Jump to content

Maturity of ProcessPagesExportImport / other ways to stage or transfer selected content changes


Recommended Posts


a current client would like to stage some larger content changes, meaning they want to edit some pages and save them, review those changes, then go live with the changes only when reviews are complete. They want to stage preferably (but not necessarily) in a separate test environment. Some of their templates have repeaters and page tables.

I have looked into the following approaches:

  • 2 environments, database dumps: While some large modifications can be staged, most other modifications have to be made in the production system directly, so not an option.
  • 2 environments, site profiles: same as above.
  • 1 environment, ProDrafts: Repeaters seem not to be supported by the module.
  • 1 environment, VersionControl: Doesn't look like it works for repeaters.
  • 1 environment, ProcessPageDraft: Probably works for repeaters (because it copies pages), but is still in beta and would require a large amount of testing.
  • 1 environment, ProcessPagesExportImport (added to the core in 2017): Seems to work fine when used via the GUI. But module info states "Development version, not yet recommended for production use".

Is there more information on ProcessPagesExportImport, e.g. is this feature likely to be finalized within a year from now?

Does anyone have other ideas?

I have not looked into CSV import/export yet.


Link to comment
Share on other sites

Actually it seems that ProDrafts already supports Repeaters – this was announced in a blog post along with ProcessWire 3.0.75, and that detail just never made it into the description at the store. In case you have any questions regarding ProDrafts, I'd recommend sending a direct PM to @ryan 🙂

VersionControl isn't really suitable for this purpose. Repeater support is one thing (though I seem to recall that the module might kinda-sorta work with Repeaters), but a bigger issue is that there's no draft feature. I could definitely hack it to do something like export a version and import it on another site (definitely something I'll keep in mind, sounds interesting!) but currently that's not doable.

I haven't really used ProcessPagesExportImport, but I know that in case of Ryan the "beta" or "development" label doesn't necessarily mean that it isn't usable. I seem to recall that much of the data for the new processwire.com site was migrated using this feature (someone correct me if I'm wrong), and although I've heard some reports of missing features and such, as far as I know it should be pretty solid already.

My first choice would definitely be one environment with the ProDrafts module. I'd only consider other options if that one doesn't pan out.

  • Like 2
Link to comment
Share on other sites

5 hours ago, teppo said:

and although I've heard some reports of missing features and such, as far as I know it should be pretty solid already.

I think the confusion is mostly in terms of managing expectations. It works if you just want to move plain data without caring much how it's actually moved. If you on the other hand have a tightly integrated system, where ids of things should not easily be changed then you might not want to use it. The big issue is that there's not much documentation on how exactly things work (especially in terms of conflict resolution) and about the obstacles you might encounter in the process.

  • Like 3
Link to comment
Share on other sites

If we are talking about content changes only (no template/field changes), then I'd also recommend ProDrafts. But it may depend on your use of repeaters, an images field within a RepeaterMatrix may be critical, for example, but in general repeaters are not a problem with ProDrafts.

If "larger content changes" may require changes in fields and/or templates, than ProDrafts probably does not work. If it would be ok that any change goes through the staging process and all changes go live concurrently, then using two sites running on the same server may be the way to go. One directory serves the live site, another directory holds the draft site. Changes are only done on the draft site. Once finished, you simply switch document root to the draft path. Afterwards you'll clone the new live site (i.e. using Duplicator) and setup a fresh draft instance for next iteration.

For intermediate content changes on the live site some hook on pagesave may be used to either log these into a file (for later import) or update the draft site automatically (sending some POST request).

  • Like 2
Link to comment
Share on other sites

Thanks for all of your input on this topic.

If we get a 'go' from the customer and our tests succeed, we will likely be using ProDrafts.

If that fails and no feasible workaround can be found, we will look into ProcessPagesExportImport again.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...