On Friday 17 July 2015 19:48:30 Carl Meyer wrote:
> On 07/17/2015 10:38 AM, Marcin Nowak wrote:
> > Sounds enough good. One important thing for me is that I have many of
> > external apps and few in project managed by me. Reconfiguring most of
> > apps just to tell Django "leave them alone" sounds like an overhead.
> > That's why I would like to tell Django "here are my apps, manage them
> > please".
> 
> I think we need to clarify what this proposed feature does, exactly.
> James' AppConfig proposal (with the parallel to unmanaged models) sounds
> to me like a "migrations should ignore this app entirely" flag (which
> would impact both `makemigrations` and `migrate`). Such a flag wouldn't
> be useful for any reusable app that has models (and thus migrations).
> I'm not opposed to this, though (much like unmanaged models themselves)
> I don't think it'll be frequently used. It's basically a way to opt out
> of migrations entirely.
> 

Agreed.

> It seems like what Marcin wants is more of a "don't ever create new
> migrations for this app, but go ahead and use its existing ones
> normally" flag (thus something that affects only `makemigrations`, not
> `migrate`).

That's what I'd want too.

> Personally I don't really see much use case for this feature
> except as a workaround for reusable apps that generate spurious new
> migrations based on settings changes

I've also seen it with apps that use "EmailField" without specifying explicit 
length (which I'd expect to be the common way to use it...)

> (e.g. the dynamic-choices case).
> Normally an app shouldn't ever generate a new migration from
> `makemigrations` unless you've modified its models code. So I'd be more
> in favor of addressing the actual problems causing spurious new migrations.
> 

That's "the best getting in the way of the good". Solving the problem at the 
source is best, and making reusable apps more robust in this sense is a great 
cause, but it shouldn't stop us from putting workarounds in the hands of 
users.

> Also, FWIW, the latter is already fairly easy to implement yourself by
> overriding `makemigrations` in your project and giving it a default list
> of app names if none are provided.
> 

I don't think that's a good answer for users (and it can't even be implemented 
as a reusable app without adding a setting).

Shai.

Reply via email to