playframework / playframework/playframework

[doc] Discuss drawbacks to running Evolutions in production

Open
#6,367 0 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

topic:documentation
Dominant language
Scala
Stars
12.6k
Forks
4k
Avg merge
2d 3h
Merged PRs (30d)
29

Description

Play Version (2.5.x / etc)

2.6.x

API (Scala / Java / Neither / Both)

Neither

Actual Behavior

If you read through Evolutions https://www.playframework.com/documentation/2.5.x/Evolutions#Managing-database-evolutions it gives the impression that Evolutions is both for development and production

When you deploy on a production server, you need to have a robust way to upgrade your database schema.

While it's true that evolutions can be run in production and work perfectly fine, there are drawbacks to running scripts automatically in production that may not be obvious to a development team -- Evolutions doesn't deal with database availability, it assumes admin / DDL statements can be run against the database automatically, and the scripts themselves have no throttle or checks against database runtime impact, etc.

In practice, operations will run tools like https://github.com/soundcloud/lhm or https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html to manage database migration well in advance of the Play application deploy. The documentation should be updated to reflect the implications behind Evolutions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked 2.5.x Evolutions documentation, especially the “Managing database evolutions” section, and review how production use is described. Update the documentation to explain operational drawbacks such as database availability, automatic DDL execution, and runtime impact, so the implications of using Evolutions in production are clear.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.