Django makemigrations not detecting project/apps/myapp
<p><strong>Solved</strong>
<br><br>
Interesting:<br></p>

<ul>
<li><code>./manage.py makemigrations apps.myapp</code> -> "App 'apps.myapp' could
not be found. Is it in INSTALLED_APPS?"<br></li>
<li><code>./manage.py makemigrations myapp</code> -> Works.</li>
<li><code>./manage.py makemigrations</code> -> "No changes detected" (it does detect changes if myapp is in the project root)</li>
</ul>

<p><br><br>
<strong>Original question:</strong>
<br><br>
Project structure</p>

<pre><code>myproject/
    myproject/
    apps/
        myapp/
            __init__.py
            admin.py
            models.py
            urls.py
            views.py
            tests.py
        myapp2/
        myapp3/
        __init__.py
    static/
    templates/
    virtualenv/
    manage.py
</code></pre>

<p>myproject/apps/myapp/models.py</p>

<pre><code>from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
</code></pre>

<p>Settings.py</p>

<pre><code>INSTALLED_APPS = [
    # ...
    'apps.myapp',
    'apps.myapp2',
    'apps.myapp3',
]
</code></pre>

<p><code>makemigrations</code> cannot find "myapps" that's not in the project root.<br>
At the same time, <code>migrate</code> does find it.</p>

<pre><code>$ ./manage.py makemigrations apps.myapp
App 'apps.myapp' could not be found. Is it in INSTALLED_APPS?

$ ./manage.py migrate apps.myapp
CommandError: App 'apps.myapp' does not have migrations.
</code></pre>

<p>Isn't the "let's put our apps into an apps folder" practise valid any more, am I doing something wrong, or is it a bug of the <code>makemigrations</code> command?</p>

<p><em>Note1: before running <code>makemigrations</code>, I removed the "migrations" folder of myapp, but I'm pretty sure it doesn't matter. It did get re-created when the app was in the project root.</em></p>

<p><em>Note2: I did research google and stackoverflow, I only found similar questions where the solution was either "adding the app to settings.py", "running makemigrations before migrate" or "some migration issue between Django 1.6 and 1.7". None of these apply to my situation, I think.</em></p>