﻿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
22583	Allow per-database migrations in multidb configurations	Anssi Kääriäinen	nobody	"Currently a database router can be used to skip operations on given model. However, this approach doesn't work at all for RunPython or RunSQL commands - especially RunSQL has no notion of which models the SQL touches. For this reason there should be some way to specify which databases the migration should apply to. The simplest way seems to be addition of using kwarg to RunPython and RunSQL commands. For example:
{{{
operations = [
    RunSQL(""create table foobar(id serial primary key);"", using='default'),
    RunSQL(""create table foobar(id integer primary key auto_increment) engine myisam;"",
           using=('mysql_alias1', 'mysql_alias2'))
]
}}}

However the problem here is that this assumes the migrations know the used database aliases. This doesn't work for 3rd party app migrations. For these cases ""for_vendor='mysql'/'postgresql'/..."" argument would work better.

Still, there might be need to allow skipping whole apps for migations - say you have a 3rd party app you don't want to migrate on database other - my understanding is that one can only skip all model operations on given database, but there is no way to force skip of RunSQL and RunPython commands, too. If it would be possible to define that the app in whole shouldn't be migrated on database other, then there would be no problem when running manage.py migrate."	New feature	closed	Migrations	dev	Normal	fixed		Loic Bistuer	Ready for checkin	1	0	0	0	0	0
