Yes, this approach certainly doesn't magically solve data migration issues, however the data migrations question has been a common one.
The nature of data migrations is that they are very one-off and context dependent and so still something you'd need to script up manually. You might use the diff tool to generate the migration script required but then edit it to add any queries needed for carrying out the data migration. And doing things this way, there's nothing stopping you continuing to chain multiple migration scripts together to support multiple versions in the context of a reusable app. On Tuesday, 20 February 2018 23:27:31 UTC+11, Curtis Maloney wrote: > > 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 django-develop...@googlegroups.com <javascript:> > > <mailto:django-developers+unsubscr...@googlegroups.com <javascript:>>. > > To post to this group, send email to django-d...@googlegroups.com > <javascript:> > > <mailto:django-d...@googlegroups.com <javascript:>>. > > 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 django-developers+unsubscr...@googlegroups.com. To post to this group, send email to django-developers@googlegroups.com. 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/62c00b16-a854-4c49-a5c9-7e83dc0c9a2a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.