Hello everyone,
My name is Manav. I’m a Computer Science and Engineering junior at Dr. 
A.P.J. Abdul Kalam Technical University in India.
I started contributing to Django in October 2020 and have solved many issues 
on trac 
<https://code.djangoproject.com/query?owner=~manav014&status=assigned&status=closed&status=new&col=id&col=summary&col=status&col=owner&col=type&col=component&col=version&desc=1&order=id>
.
I read through the GSoC Idea List and the Migration topic stood out for me. 
I found the idea to adapt schema editors to operate from model states 
instead of fake rendered models really interesting.
I am working on this for the last 1 month and I have made myself familiar 
with the whole migrations framework codebase. I drafted a basic proposal 
<https://gist.github.com/manav014/9b0feb734e4d140eef1913340602d2ae> in 
which I would be updating the complete solution after some discussion to 
make the solution more concrete, practical, and effective.
The problem with the Migration framework is briefly described in the 
proposal <https://gist.github.com/manav014/9b0feb734e4d140eef1913340602d2ae> 
itself. 
After understanding the problem I came up with a few solutions which are 
listed below:

   1. As Suggested by @MarkusH <https://forum.djangoproject.com/u/markush>, 
   A central registry to store all dependencies in django.apps.registry.Apps
   
   Or
   
   2. Designing a new metaclass for ModelState just like we have ModelBase 
   
<https://github.com/django/django/blob/9ee693bd6cf4074f04ec51c6f3cfe87cad392f12/django/db/models/base.py#L72>
 
   for Model. As then we would be able to use Options 
   
<https://github.com/django/django/blob/9ee693bd6cf4074f04ec51c6f3cfe87cad392f12/django/db/models/options.py#L64>
 
   with _meta in ModelState which will help in fetching the field details.

Personally, I found Migration Framework damn interesting. I would love to 
optimize the Migration framework. Just need some more points which I can 
add in my proposed solution to make it more concrete.
I request fellow developers to please help me with their respective 
suggestions, thoughts or feedback, so that I may develop a better and 
practical proposal.

Regards,
Manav Agarwal

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/057f80c3-93c1-4d05-868d-89a9eaa40ceen%40googlegroups.com.

Reply via email to