7
votes

"Python Manage.py Syncdb" Ne crée pas de tables

i d'abord couru xxx pré>

et il a créé la base de données et les tables pour moi, puis j'ai essayé d'ajouter plus d'applications, et voici ce que j'ai fait: p>

Créer des applications par p> xxx pré>

puis j'ai ajouté 'newApp' code> à installé_apps code> dans réglage.py: p>

Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)


2 commentaires

Avez-vous des modèles dans NewApp? S'il vous plaît montrer vos modèles.py.


@ timo.rieber ouais, tu as raison. Merci beaucoup!!


6 Réponses :


4
votes

Si vous exécutez:

python manage.py inspectdb > somefile.txt


2 commentaires

très utile. Merci!!


Ok, je vois que ma structure de base de données ne correspond pas à mes modèles. Comment puis-je réparer ça?



0
votes

J'avais le même problème et j'ai remarqué qu'il avait créé un fichier db.sqlite3 qui n'avait pas semblé vide: xxx

J'ai essayé d'exécuter SQLite à nouveau en utilisant le nom de fichier comme argument et qui a fonctionné: xxx


0 commentaires

6
votes

J'ai également couru dans ce numéro et j'ai pu m'envoyer autour de lui en supprimant le dossier des migrations dans mon application. D'une manière ou d'une autre, cela avait déjà été créé et trompait Syncdb pour penser qu'il était déjà migré de manière totalement migrée, mais ces scripts de migration ne faisaient vraiment rien d'utile. Évidemment, n'essayez pas ceci si vous avez des migrations que vous souhaitez économiser, mais je travaillais avec une nouvelle application et des modèles.


2 commentaires

J'ai rencontré le même problème, supprimant le dossier des migrations autorisé Syncdb à exécuter sur mes nouveaux modèles d'application +.


Il semble que si vous commencez à commenter «South» des applications installées dans le fichier de paramètres, vous pouvez créer l'intégralité de la DB.



1
votes

J'ai le même problème, mais je n'ai pas eu de dossier "migration". J'ai résolu cela comme ci-dessous.

Je viens d'ajouter app_label avec le code modèle, xxx

également, assurez-vous qu'il est découvertable en le référant dans myApp / modèles / __ init __. py xxx


1 commentaires

La partie de référencement est importante



0
votes

Vous devriez utiliser cette commande xxx

où vous exécutez Syncdb à partir de l'emplacement où Manage.py réside


0 commentaires

4
votes

J'ai essayé la plupart des idées ci-dessus:

  • Assurez-vous que le modèles.py est importé (vérifié que le module exécuté pendant un makemigrate),
  • Suppression du dossier Migration
  • paramètre géré = true (voilà de toute façon),
  • a utilisé le python manage.py inspectrdb (qui a correctement vidé la table, si je l'avais créé manuellement).

    La clé était simplement d'exécuter un Makemigrations sur l'application séparément:

    python manage.py Makemigrations

    Dans le cadre de l'exécution de l'étape Makemigrations. Alors vous faites

    python manage.py migrate

    après comme d'habitude.

    (s'applique à Django 1.10, en utilisant Postgres 9.5).

    Django Documentation

    crédit, message associé < / a>


0 commentaires