﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28182	Introduce django code migrations	Artur Barseghyan	nobody	"Python has awesome introspection. `lib2to3` exists for a very long time. Third party libraries like `python-modernize`  seem to work fine.

Within past 6 months I have migrated 3 sites from Django 1.6 to Django 1.8. Next year, likely, all of them are supposed to be migrated further.

Code migration costs a lot of time/funds/effort. Small companies can't always afford it (regularly). Even big companies (like Instagram) postpone code upgrades for a long time, due to (pick one) lack of human resources/funds, complexity, the hassle.

I wonder, why would established frameworks like Django, not be willing to simplify code migration process (between versions) by providing code migration steps.

Django could have a sub-module `codemigraiton` with sub-sub modules for each version update.

For instance, Django 2.0 could contain migrations steps from 1.8 to 2.0

/django/codemigration/django_2_0/
/django/codemigration/django_1_11/
/django/codemigration/django_1_10/
/django/codemigration/django_1_9/

Steps would be dependant.

There could be a `django-migrate.py` command which would take care of the code migrations. It could accept a number of arguments, such as currentversion, sourcepath, etc.

The whole upgrade process could look as follows:

- Developers install the desired/target version of Django
- Run the `django-migrate.py` commandto have their current code base upgraded. 
- Do the finishing touches by hand.

Most of the work could have been automated, so that developers spend their creativity in a better way.

I'm quite sure, this feature, it taken seriously, can bring Django to a new quality level and (why not?) raise more funds from companies interested in the future development of Django."	Uncategorized	closed	Uncategorized	dev	Normal	wontfix	code migration proposal		Unreviewed	0	0	0	0	0	0
