Pourquoi suis-je incapable d'exécuter django migrations par le biais du menu fixe-composer exécuter web de "commande"?

Donc je suis le déploiement de django, postgress et nginx conteneurs via docker-composer et j'ai un problème que je n'arrive pas à comprendre.

Afin de résoudre l'erreur suivante dans mon Django app, je savais que j'ai juste eu à exécuter un Django migration.

[email protected] ERROR:  relation "accounts_myprofile" does not exist

Dans une tentative d'exécuter les migrations, j'ai essayé:

docker-compose run web python manage.py makemigrations 
docker-compose run web python manage.py migrate

qui a renvoyé l'suivantes:

Migrations for 'accounts':
  accounts/migrations/0001_initial.py:
    - Create model Entry
    - Create model MyProfile

Running migrations:
  No migrations to apply.

Je n'ai pu réussir à migrer à partir de l'intérieur de l'Django conteneur, par exemple:

docker exec -i -t 6dc97c6a305c /bin/bash
python manage.py makemigrations
python manage.py migrate

Bien que j'ai résolu le problème, je ne comprends toujours pas pourquoi l'exécution de l'migrer via docker-composition de l'exécuter ne fait pas migrer rien. J'espère que quelqu'un pourra peut-être me diriger dans la bonne direction.

Aussi, je ne sais pas si c'est un problème lié ou pas, mais quand je lance ces docker-composition de web exécuter les commandes, ils semblent être la création de nouvelles des conteneurs qui ne sont pas l'arrêt à moins que j'ai arrêter manuellement, docker-composition de cesser de ne pas les supprimer.

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                          PORTS                    NAMES
a7bb3c7106d1        accounts_web            "python manage.py che"   4 hours ago         Restarting (0) 41 minutes ago   8000/tcp                 accounts_web_run_62
ee19ca6cdf49        accounts_web            "python manage.py mig"   4 hours ago         Restarting (0) 43 minutes ago   8000/tcp                 accounts_web_run_60
2d87ee35de3a        accounts_web            "python manage.py mak"   4 hours ago         Restarting (0) 43 minutes ago   8000/tcp                 accounts_web_run_59
1c6143c13097        accounts_web            "python manage.py mig"   4 hours ago         Restarting (1) 44 minutes ago   8000/tcp                 accounts_web_run_58
6dc97c6a305c        b1cb7debb103              "python manage.py run"   3 days ago          Up 4 hours                      8000/tcp                 accounts_web_1

Remarque: Docker-composer un arrêt bien arrêter le récipient au fond (comme il se doit), mais les autres conteneurs qui ont été créés par docker-composition de web exécuter python manage.py migrer, devra être arrêté manuellement.

mon menu fixe-composer

web:    
  restart: always
  build: ./web
  expose:
    - "8000"
  links:
    - postgres:postgres

  volumes:
    - /usr/src/app
    - /usr/src/app/static

  env_file: .env
  environment:
    DEBUG: 'true'
  command: python manage.py runserver 0.0.0.0:8000


postgres:
  restart: always
  image: kartoza/postgis:9.4-2.1
  ports:
    - "5432:5432"
  volumes:
    - pgdata:/var/lib/postgresql/data/
Aussi stackoverflow.com/a/25959632/6309 pourrait aider

OriginalL'auteur david | 2017-01-03