@@ -8,6 +8,7 @@ Reshape is designed for Postgres 12 and later.
9*Note: Reshape is **experimental** and should not be used in production. It can (and probably will) destroy your data and break your application.*
9*Note: Reshape is **experimental** and should not be used in production. It can (and probably will) destroy your data and break your application.*
11+- [How it works](#how-it-works)
11- [Getting started](#getting-started)
12- [Getting started](#getting-started)
12 - [Installation](#installation)
13 - [Installation](#installation)
13 - [Creating your first migration](#creating-your-first-migration)
14 - [Creating your first migration](#creating-your-first-migration)
@@ -33,9 +34,19 @@ Reshape is designed for Postgres 12 and later.
33 - [`reshape abort`](#reshape-abort)
34 - [`reshape abort`](#reshape-abort)
34 - [`reshape generate-schema-query`](#reshape-generate-schema-query)
35 - [`reshape generate-schema-query`](#reshape-generate-schema-query)
35 - [Connection options](#connection-options)
36 - [Connection options](#connection-options)
36−- [How it works](#how-it-works)
37- [License](#license)
37- [License](#license)
42+Reshape works by creating views that encapsulate the underlying tables, which your application will interact with. During a migration, Reshape will automatically create a new set of views and set up triggers to translate inserts and updates between the old and new schema. This means that every deployment is a three-phase process:
44+1. **Start migration** (`reshape migrate`): Sets up views and triggers to ensure both the new and old schema are usable at the same time.
45+2. **Roll out application**: Your application can be gradually rolled out without downtime. The existing deployment will continue using the old schema whilst the new deployment uses the new schema.
46+3. **Complete migration** (`reshape complete`): Removes the old schema and any intermediate data and triggers.
48+If the application deployment fails, you should run `reshape abort` which will roll back any changes made by `reshape migrate` without losing data.
39## Getting started
50## Getting started
41### Installation
52### Installation
@@ -460,16 +471,6 @@ The options below can be used with all commands that communicate with Postgres.
460| `--username` | `postgres` | Postgres username |
471| `--username` | `postgres` | Postgres username |
461| `--password` | `postgres` | Postgres password |
472| `--password` | `postgres` | Postgres password |
465−Reshape works by creating views that encapsulate the underlying tables, which your application will interact with. During a migration, Reshape will automatically create a new set of views and set up triggers to translate inserts and updates between the old and new schema. This means that every deployment is a three-phase process:
467−1. **Start migration** (`reshape migrate`): Sets up views and triggers to ensure both the new and old schema are usable at the same time.
468−2. **Roll out application**: Your application can be gradually rolled out without downtime. The existing deployment will continue using the old schema whilst the new deployment uses the new schema.
469−3. **Complete migration** (`reshape complete`): Removes the old schema and any intermediate data and triggers.
471−If the application deployment fails, you should run `reshape abort` which will roll back any changes made by `reshape migrate` without losing data.
473## License
474## License
475−Reshape is released under the [MIT license](https://choosealicense.com/licenses/mit/).
476+Reshape is released under the [MIT license](https://choosealicense.com/licenses/mit/).