Files
Spoolman/migrations
Sanjay Santhanam 7e4d2ee419 fix(api): repair filament rows already stored with a leading #
The validator fix only guards the write path. Instances that already hit #780
keep 500ing on GET /filament because the stored value exceeds the response
model's max_length, and the UI can't repair what it can't list.

Filament.from_db now strips the # and returns None when the stored value still
isn't a valid 6/8 character code, so a single bad row no longer takes down the
whole list. A migration chained from 415a8f855e14 rewrites existing rows one by
one through op.get_bind() rather than with SQL string functions, so it behaves
the same on sqlite, postgres, mysql and cockroachdb. downgrade() is a no-op.
2026-08-02 00:22:27 -07:00
..
2023-05-27 23:14:06 +02:00
2023-08-12 22:33:20 +02:00
2024-01-16 19:17:06 +01:00

Migrations

Migrations are used to create and update the database schema. They are run automatically every time Spoolman starts.

To create a new migration, edit the tables as desired in spoolman/database/models.py, then start the Spoolman server to update your local sqlite database.

pdm run python -m spoolman.main

Stop the server once it's up.

Then, let Alembic automatically create a new migration file:

pdm run alembic revision -m "some title" --autogenerate

Go into the created migration and make sure it looks good, that the column changes etc are as desired. Format it with Black and Ruff. Commit.