Tried it out now with SQLite to see what it does with difficult migrations, like adding a foreign key constraint to an existing table. Looks like it just generates invalid migrations, eg:

`ALTER TABLE books ADD CONSTRAINT fk_books_author FOREIGN KEY (author_id) REFERENCES authors (id)`

Which is not valid in SQLite (https://www.sqlite.org/lang_altertable.html)

So you have to drop and re-add a column when adding foreign keys?

The SQLite docs have a section about it, the idea is: 1. Create new table with foreign key constraint 2. Copy data from old to new 3. Drop old table 4. Rename new table to old name