Migrations module for ProcessWire

Overview

ProcessDbMigrate

Introduction

This module is designed to ease the problem of migrating database changes from one PW environment to another. I wanted something to achieve the following:

  • To allow development to take place (in a separate environment on a copy of the live database, or on a test database with the same structure) using the Admin UI. When finished, to permit a declarative approach to defining the migration and implementing it (again in the UI).
  • To allow testing of the migration in a test environment on a copy of the live database.
  • To allow roll-back of a migration if installation causes problems (ideally while testing rather than after implementation!).
  • To provide a record of changes applied.
  • Although not originally intended, the module I developed also allows the selective reversion of parts of the database by exporting migration data from a backup copy. Also, if changes are made directly on the live system (presumably simple, low-risk mods – although not best practice), it allows reverse migration to the development system in a similar fashion.

I should emphasise that what I have built is a 'proof of concept'. The code is pretty hacky. Lots of validation is missing and some spurious error messages occur. However, I have used it successfully in a number of small tests on 3 separate sites and a medium-sized live migration. It would still benefit from further testing and code enhancements from more skilled coders than me.

Installation

Place the ProcessDbMigrate folder in your site/modules directory. Make sure your environment meets the requirements - you need FieldtypeRuntimeOnly to be installed first. The earliest PW version I have tested it with is 3.0.148, but it might work on earlier 3.0.xxx versions. Please let me know if it works with earlier versions.

Having satisfied the dependencies, install the module.

Updating

Just put the new code in the ProcessDbMigrate folder. Then refresh Modules. Note that if you have hacked the bootstrap json, then updating will overwrite your hack.

Usage

I think the usage is quite logical, but it is fairly complex, so please read the help file first.

You might also like...
SilverStripe Garbage Collection Module

SilverStripe Module for defining and processing Garbage Collection on SilverStripe Applications.

WHMCS Automation Module For AWS EC2 Instances.
WHMCS Automation Module For AWS EC2 Instances.

使用方法 把AWSEC2目录直接扔到 WHMCS/modules/servers 下即可 自定义字段 cloudinit (文本框 textarea 在订单页面显示) pem (文本框 textarea 仅管理员可见) data (文本框 textarea 仅管理员可见) 特性 动态IP (关机再开

Akaunting module to use employee as a customer

Associate Employee to customer App for Akaunting to associate employee to customer. With this app contacts with the employee type can be used as custo

PHP's Promse implementation depends on the Swoole module.

php-promise-swoole PHP's Promse implementation depends on the Swoole module. Promise::allsettled([ /** Timer 调用 */ /** Timer call */

This module aims to validate if the pilot made his flights online on the IVAO and VATSIM networks

SMPirepValidator This module aims to validate if the pilot made his flights online on the IVAO and VATSIM networks SMPirepValidator v.1.0 for phpVMS (

The whmcs payment module for TigoPesa Payment Gateway.

whmcs-tigopesa INSTALLATION INSTRUCTIONS TIGOPESA WHMCS Please follow the instructions below to setup the whmcs-tigopesa gateway module. Download zipp

 Content Fuzzyfyr Module for Magento® 2
Content Fuzzyfyr Module for Magento® 2

Content Fuzzyfyr Module for Magento® 2 The Content Fuzzyfyr module for Magento® 2 fills up empty content fields - and if needed - switches real conten

A Zabbix module to show groups/hosts as a tree under Monitoring -> Hosts Tree menu item
A Zabbix module to show groups/hosts as a tree under Monitoring - Hosts Tree menu item

zabbix-module-hosts-tree Written according to Zabbix official documentation https://www.zabbix.com/documentation/current/manual/modules A Zabbix modul

Upgrade module for PrestaShop

1-Click Upgrade About Upgrade to the latest version of PrestaShop in a few clicks, thanks to this automated method. This module is compatible with all

Comments
  • Installing the module fails

    Installing the module fails

    I downloaded the module via modules->install module via url and inserted the zip file from github https://github.com/MetaTunes/ProcessDbMigrate/archive/refs/heads/master.zip

    The module is downloaded. Then I first installed FieldtypeRuntimeOnly and then ProcessDbMigrate. Now the following error occurs: You must assign a template to the page before setting custom field values

    PW version is ProcessWire 3.0.173.

    opened by jmartsch 7
  • CSS Issues

    CSS Issues

    @MetaTunes Hi Mark, thanks for this module, just started trying it out today and am seeing some strange layout issues in various pages in the admin interface after adding this.

    Firstly, there are some layout issues with the module's initially shown page. 2022-03-10_11-39

    Then with the actual pages in the setup. 2022-03-10_11-40

    And. 2022-03-10_11-40_1

    These start to impact other areas of the admin interface as well. 2022-03-10_11-41

    All resolve nicely once this module is uninstalled.

    opened by netcarver 4
Owner
Mark Evens
Mark Evens
The MX_PhinxMigrations module integrates Phinx database migrations into Magento 2

MX Phinx Migrations About The MX_PhinxMigrations module integrates Phinx database migrations into Magento 2 as a replacement for the built-in setup:up

Inviqa 34 Jul 30, 2021
A measurement field for ProcessWire

Fieldtype Measurement This fieldtype allows a measurement unit to be stored with a corresponding measurement value ('magnitude'). The relevant details

Mark Evens 2 Aug 6, 2022
Build lightning-fast and feature-rich websites with ProcessWire.

WIREKIT Core Build lightning-fast and feature-rich websites with ProcessWire. Website: wirekit.dev (in plans) Demo: start.wirekit.dev/core/ Updates: W

Ivan Milincic 10 Nov 3, 2022
Multi-language field export/import tool for ProcessWire

Language field export/import for ProcessWire Typically the way you translate page field values in ProcessWire is to edit a page, view the text in one

Ryan Cramer 3 Aug 19, 2022
Tables migrations seeded with data according to the Algerian education system structure.

Laravel algerian education system structure If you are building a Learning Management System or a School Management System and targeting the Algerian

Elaborate Code 12 Oct 8, 2022
A Simple MVC PHP Framework, integrated with lot of features such as Session, Cookies, Migrations, Database, Factories, Seeding, Bootstrap and Tailwind CSS

Navite A Simple MVC PHP Framework, integrated with lot of features such as Session, Cookies, Migrations, Database, Factories, Seeding, Bootstrap and T

Celionatti 2 Aug 22, 2022
Refresh artisan commands,table,migrations,models,controllers...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Javier Fernández 11 Oct 18, 2022
Magento 2 Module Experius Page Not Found 404. This module saves all 404 url to a database table

Magento 2 Module Experius Page Not Found 404 This module saves all 404 urls to a database table. Adds an admin grid with 404s It includes a count so y

Experius 28 Dec 9, 2022
WHMCS Payment Gateway Module for Coinify

vrcoinify WHMCS Payment Gateway Module for Coinify Installing guide You should copy all contents from module folder to your WHMCS application folder u

VR DEV TEAM 3 Mar 15, 2022
The swiss army knife for Magento developers, sysadmins and devops. The tool provides a huge set of well tested command line commands which save hours of work time. All commands are extendable by a module API.

netz98 magerun CLI tools for Magento 2 The n98 magerun cli tools provides some handy tools to work with Magento from command line. Build Status Latest

netz98 758 Dec 28, 2022