Hi,
I must say your idea intrigues me... and I'd certainly like to discuss
it further.
The first thought that comes to mind is how would such a system handle
data migrations?
Being able to leap from one schema state to another is great, buy
typically in the life-cycle of a reusable app it's required to also
migrate old data into new schema.
This also happens within project-specific apps.
--
Curtis
On 02/20/2018 05:05 PM, djrobstep wrote:
Hi all,
Some thoughts on schema migrations that may interest you. By way of
background, I'm the author of migra
(https://github.com/djrobstep/migra), a schema comparison/diff tool for
Postgres.
I initially wrote this tool because I wanted to be able to generate
migration scripts automatically, without needing historical migration files.
It means that you can do things like sync your database to your models
mostly automatically, and also explicitly test for a matching schema.
Instead of a chain of migration files you only ever need to keep track
of one, containing any pending changes).
I've used this approach with success on a number of projects now, and it
seems to work pretty well. I also talked about this approach to
migrations at the most recent PostgresOpen
(https://www.youtube.com/watch?v=xr498W8oMRo).
The downside of this approach is that it's slightly more operationally
complex (you need have a temporary copy of your production schema
available for comparison purposes, typically a --schema-only dump file)
and also that it's postgres-only at this point. It's also conceptually
quite different to the typical Django/Rails style of migrations which
represents a barrier to entry.
In spite of this, I think doing migrations this way has some compelling
advantages, that are relevant to users of Django.
I'm interested in your opinions on this topic as Django developers. What
do you think? Is it something worth offering as an option for managing
Django migrations? If your feelings are positive, I'm happy to take a
look at extending the code accordingly.
--
You received this message because you are subscribed to the Google
Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/5f84157b-071e-42c3-90dd-6f9e3df48ab3%40googlegroups.com
<https://groups.google.com/d/msgid/django-developers/5f84157b-071e-42c3-90dd-6f9e3df48ab3%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django
developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/4ef38de9-780c-e2f9-9ce2-5d9621d6bf64%40tinbrain.net.
For more options, visit https://groups.google.com/d/optout.