Skip to content

Commit

Permalink
prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
i-oden committed Dec 5, 2024
1 parent ada80e4 commit e03c454
Showing 1 changed file with 11 additions and 13 deletions.
24 changes: 11 additions & 13 deletions migrations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

If you modify the database models (e.g. tables or indexes), you must create a migration for the changes. We use `Alembic` (via `flask-migrate`) which compares our database models with the running database to generate a suggested migration.

This document explains how to generate new database migration.
This document explains how to generate new database migration.

## Steps for Generating Migrations

Expand All @@ -22,7 +22,7 @@ Edit the `models.py` file to reflect the changes you need. This might include:
- Modifying existing fields
- Deleting tables or columns

### 3. Create a new migration
### 3. Create a new migration

To create the migration, pick **one of the following options**. This will create a migration in the folder `migrations/versions`.

Expand All @@ -46,13 +46,12 @@ docker exec dds_backend flask db migrate -m <migration name>

### 4. Review the Generated Migration File

Now, a new migration will have been generated in the `migrations/versions` directory. **Review this file carefully** to ensure it correctly represents your intended changes. If not, change the `upgrade` and `downgrade` functions as needed.

> **NB!** Keep an eye out for changes to the `apscheduler` tables and indexes, and **make sure they are not included in the migration**.
> Apscheduler is no longer used for the cronjobs, but are listed in the requirements still. This note will be removed once we have removed `apscheduler` all together.
Now, a new migration will have been generated in the `migrations/versions` directory. **Review this file carefully** to ensure it correctly represents your intended changes. If not, change the `upgrade` and `downgrade` functions as needed.

For reference on available operations and customization options, check the [Alembic Documentation](https://alembic.sqlalchemy.org/en/latest/ops.html).
> **NB!** Keep an eye out for changes to the `apscheduler` tables and indexes, and **make sure they are not included in the migration**.
> Apscheduler is no longer used for the cronjobs, but are listed in the requirements still. This note will be removed once we have removed `apscheduler` all together.
For reference on available operations and customization options, check the [Alembic Documentation](https://alembic.sqlalchemy.org/en/latest/ops.html).

### 5. Test the migration

Expand All @@ -66,7 +65,7 @@ docker exec -it dds_backend /bin/sh

# 2. Run the database upgrade
flask db upgrade
```
```

#### Option B

Expand All @@ -78,20 +77,19 @@ docker exec dds_backend flask db upgrade

### 6. Commit the Migration File

Finally, commit the migration file to git.

Finally, commit the migration file to git.

## How to start over

If you want to start over, e.g. if something went wrong when following the steps outlined above, follow the steps below.

1. Restore the content of `migrations/versions`:

a) Remove the new migrations file(s)
b) Run `git restore` on the `migrations/versions` folder
a) Remove the new migrations file(s)
b) Run `git restore` on the `migrations/versions` folder

2. Reset the container: `docker compose down`
3. Remove `flask init-db $$DB_TYPE &&` in the `docker-compose.yml` file. This will prevent the population of the database and instead allow the install of the old schema.
3. Remove `flask init-db $$DB_TYPE &&` in the `docker-compose.yml` file. This will prevent the population of the database and instead allow the install of the old schema.
4. Start the container again: `docker-compose up`
5. Follow the [Steps for Generating Migrations](#steps-for-generating-migrations) section

Expand Down

0 comments on commit e03c454

Please sign in to comment.