Open dbernheisel opened 2 years ago
I don't know if SQLite actually supports DDL transactions, but like you said, we could "fake" it with exclusive. I didn't implement it because ecto sqlite 2 did not implement it.
I don't know if SQLite actually supports DDL transactions
ALTER TABLE
documentation confirms that it does, as well as this simple demo:
Having support for DDL transactions would be really appreciated!
I'll take a look into this. I'll check if there is some upstream integration tests that test the DDL transactions and see if we can get that implemented.
I noticed that this adapter doesn't seem to support DDL transactions or a migration lock during ecto migrations. Does that support need to be implemented?
I'm probably missing something, but I figure that a DDL transaction can be started with exclusive mode, and perhaps the migration lock is satisfied with a file lock?
https://github.com/elixir-sqlite/ecto_sqlite3/blob/main/lib/ecto/adapters/sqlite3.ex#L218-L224
I'll be happy to contribute if there's a clear way forward.