Infrastructure migration + modernisation
Tanec Praha: Migrating four interlinked sites off end-of-life Drupal without dropping traffic or mail
Tanec Praha runs four public sites — the PONEC theatre, the Tanec Praha festival, the Tanec Praha z.ú. organisation and the Czech Dance Platform — all served from a single Drupal 7 install using the Domain Access module. The whole thing had to move off ageing hosting onto a new environment without taking down the sites, the mail or the newsletters. This was a lift-and-shift of an out-of-support system: the goal was not a rebuild but a safe transfer of a working whole, plus a stable base for modernising later.
- 4 sites
- one install, one docroot
- Zero
- downtime during the migration
Where things stood
The site ran on older shared hosting on Drupal 7, past the end of official support. All told it came to more than 30,000 files and roughly 17 GB of data, most of it in the media library. Four domains shared one database and one docroot through Domain Access, where each domain serves its own content from the same install. That is what made the migration awkward — the sites could not be moved one at a time, only as a single interlinked whole.
The critical sensitivity was the email infrastructure bound to those domains through DNS:
- production mail on several domains (both self-hosted mailservers and Google Workspace)
- the Ecomail newsletter platform with its own DKIM signatures
- service verification records (Google, Microsoft, Apple)
- SPF, DKIM and DMARC configuration for deliverability
One careless edit to a DNS zone could have taken down the mail or wrecked newsletter deliverability — a serious operational problem for an organisation that talks to audiences, artists and partners by email.
Preparation and moving the data
The migration ran against a live, working site, so the whole point was not to cut traffic over before the new copy was verified. I therefore built and tested the entire transfer in parallel, away from production:
- a server-to-server transfer of the full media library (~17 GB) directly between hosts
- importing the database into the new environment and wiring it up
- configuration for the older runtime (PHP 7.2, silencing the EOL version’s error output)
- fixing absolute paths inherited from the original host
- verifying the admin, the content, user roles and ticket sales
The new copy ran alongside the old one as a safety net — until it was fully tested the live site stayed untouched and available as a fallback at any moment.
Domain architecture and testing
For four domains to work correctly over a single install, I set them up as hosting aliases over one docroot, which matches how Domain Access expects to be deployed. I tested each domain before touching DNS — using local host overrides I confirmed that it served its own site (PONEC, the festival, the organisation) and that the admin and key features such as ticket sales worked.
That settled the riskiest unknown in the migration: that Domain Access and the external systems hanging off it would behave on the new environment exactly as they had on the old one.
Cutting DNS over without touching mail
I handled the most delicate phase — the traffic cutover — with the explicit aim of preserving every piece of email configuration. For each domain only the web records changed (A and AAAA pointing at the new infrastructure), while mail and verification records were left alone:
- MX records (self-hosted mailservers and Google Workspace alike) unchanged
- DKIM, SPF and DMARC deliverability records preserved
- the Ecomail newsletter configuration preserved
- service verification records preserved
For the domain whose zone is managed at a different provider, only the A/AAAA record changed, edited in place in the original zone, so the whole DNS configuration — mail included — did not have to be taken over. A lowered TTL made the cutover fast and reversible at any point.
SSL and wrap-up
Once each domain pointed at the new infrastructure I issued SSL certificates covering every domain and its variants, so all traffic runs over HTTPS. After the cutover I tuned the environment’s scheduled work (routine system maintenance, cache rebuilds) and handed over a working, secured site.
Outcome
Four interlinked sites moved to a new environment with no interruption to traffic, no lost mail and no newsletter outage. What remains is a stable, secured base the organisation can keep running and modernise step by step. The key was not speed but caution — for a production system with mail and marketing bound to it, a safe, verified cutover matters more than anything else.
Tech used
- Drupal 7
- PHP 7.2
- MySQL/MariaDB
- Domain Access
- lftp (server-to-server transfer)
- DNS and hosting
- SSL/Let's Encrypt
- Ecomail
- Google Workspace
Outcome
- ~17 GB and 30,000+ files migrated with no downtime
- mail preserved on every domain, with MX, DKIM, SPF and DMARC records left untouched
- newsletter deliverability preserved (Ecomail, DKIM)
- four sites working over one install via Domain Access
- ticket sales verified after the migration
- HTTPS everywhere via SSL certificates
- the old install kept as a fallback throughout the transition
- a stable base for future modernisation