would yield an error like
{{{
CommandError: App 'SOME_APP' does not have migrations.
}}}
all while a migrations folder with migrations *does exist* in the
specified app. It is often the case that the cause of the issue is simply
that the `__init__.py` file is missing from the directory, but that is not
at all apparent. Even running
{{{
manage.py showmigrations SOME_APP
}}}
is unhelpful and unless the programmer is specifically aware of this
potential issue (and even then it's easy to forget) the problem can be
confusing to solve.
I propose a simple change of the error message to:
{{{
CommandError: No migration detected for app 'SOME_APP'. Is an
'__init__.py' file present in the 'migrations/' directory?
}}}
Or something to the same effect.
--
Ticket URL: <https://code.djangoproject.com/ticket/32247>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* status: new => closed
* type: Uncategorized => Cleanup/optimization
* ui_ux: 1 => 0
* resolution: => invalid
Comment:
Replying to [ticket:32247 berzi]:
> {{{
> CommandError: App 'SOME_APP' does not have migrations.
> }}}
>
> all while a migrations folder with migrations *does exist* in the
specified app. It is often the case that the cause of the issue is simply
that the `__init__.py` file is missing from the directory, but that is not
at all apparent.
This message doesn't say anything about `migrations` directory but about
`migrations` module. Python packages without an `__init__.py` file
("namespace packages") are not supported, see #30300.
> I propose a simple change of the error message to:
> {{{
> CommandError: No migration detected for app 'SOME_APP'. Is an
'__init__.py' file present in the 'migrations/' directory?
> }}}
`__init__.py` files are required in most directories I don't see any
specific reason to highlight them here. It's also automatically created
when you use `startapp`, which I recommend.
--
Ticket URL: <https://code.djangoproject.com/ticket/32247#comment:1>