32 karma · joined March 12, 2020
The other remotely similar service, Tidelift, has unacceptable terms and conditions: for the compensation they decide "at [their] sole discretion", "[i]f you do not satisfactorily provide the Services, Tidelift may, at its option and without limitation, (a) require you to immediately re-perform the applicable Service at no additional charge; and/or (b) reduce the fees paid, or due to be paid, to you for the applicable Service in an amount commensurate with the cost to the Subscriber to cover the breach and/or the cost to Tidelift to assist its Subscriber with covering the breach." Quotes taken from the May 2022 "Lifter Agreement", which I was asked to sign for the monthly equivalent of what a professional charges for 30 minutes of work.
I hope that Ringer will prove a real contact point between Free Software professionals and professional users.
only if the comment pertains to a django feature, not to a schema feature that cannot be expressed in django (e.g. a partial index designed for a specific query).
> You can name your migrations with:
In the example there is a foreign key name, not a migration name. It is persisted in the database, it's not ephemeral like a migration name, for which choosing a meaningful name has only a temporary value.
Just two factual corrections; for the rest our experiences diverge, that's fine.
As someone else pointed out, migration without CI can be dangerous and difficult to coordinate with deployment.
Note that you can obtain a similar result in psycopg2 by going in green mode and using select as wait callback (see https://www.psycopg.org/docs/extras.html#psycopg2.extras.wai...). This trick enables for instance stopping long-running queries using ctrl-c.
You can also register a timeout in the server to require to terminate a query after a timeout. I guess they are two complementary approaches. In the first case you don't know the state of the connection anymore: maybe it should be cancelled or discarded, we should work out what to do with it. A server timeout is easier to recover from: just rollback and off you go again.