Django-fr

Forum

#1 01-09-2013 08:21:38

sesame
Membre
Inscription : 22-03-2011
Messages : 263

migrations

bonjour

voulant rajouter une classe a mon model j'ai donc fait

python manage.py schemamigration material --init

puis j'ai rajouté la classe

python manage.py syncdb --all

python manage.py migrate material --fake

j'ai l'erreur

Running migrations for material:
! Migration material:0033_initial should not have been applied before material:
0033_auto__add_physic but was.
! Migration material:0030_initial should not have been applied before material:
0029_initial but was.

comment reparer proprement ? avec --merge ?

Hors ligne

#2 01-09-2013 09:55:41

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : migrations

Bonjour,

Il semblerait que tu aies plusieurs problèmes qui se superposent.
Il ne doit y avoir qu'un seul initial par application (au sens application Django)
Pour pouvoir se faire une idée du problème, il faudrait la liste des migrations que tu as et celles que tu as jouées (le contenu du répertoire migrations de material et celui du manage.py migrate --list material)

Hors ligne

#3 01-09-2013 14:45:44

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : migrations

effectivement,  ca me parait compliqué...

voila ce que ca donne apres la commande

(env) C:\03_07ter\monprojet>python manage.py migrate --list material

material
  (*) 0001_initial
  (*) 0002_auto__add_field_uniteproperty2_is_valid
  (*) 0003_define_is_label
  (*) 0004_auto__del_field_uniteproperty2_is_valid
  (*) 0005_initial
  (*) 0006_auto__add_field_uniteproperty2_title
  (*) 0007_initial
  (*) 0008_auto__add_donnee_temperature
  (*) 0009_initial
  (*) 0010_initial
  (*) 0011_initial
  (*) 0012_auto__del_field_essai_temperature_val20
  (*) 0013_initial
  (*) 0014_auto__add_field_essai_temperature_val_ref
  (*) 0015_initial
  (*) 0016_auto__add_field_uniteproperty2_title2
  (*) 0017_initial
  (*) 0018_auto__del_field_uniteproperty2_title2
  (*) 0019_initial
  (*) 0020_auto__add_field_uniteproperty2_val3
  (*) 0021_initial
  (*) 0022_initial
  (*) 0023_initial
  (*) 0024_auto__del_field_uniteproperty2_val_unit__del_field_essai_temperature_
v
  (*) 0025_initial
  (*) 0026_initial
  (*) 0027_auto__del_field_uniteproperty2_val_unit__del_field_essai_temperature_
v
  (*) 0028_initial
  (*) 0029_auto__add_physic__chg_field_uniteproperty2_val_champ__chg_field_essai
_
  ( ) 0029_initial
  (*) 0030_initial
  (*) 0031_initial
  (*) 0032_initial
  ( ) 0033_auto__add_physic
  (*) 0033_initial
  (*) 0034_initial
  (*) 0035_auto__add_field_uniteproperty2_choix
  (*) 0036_initial
  (*) 0037_initial
  (*) 0038_initial
  (*) 0039_auto__add_field_uniteproperty2_choix
  (*) 0040_initial
  (*) 0041_initial
  (*) 0042_initial
  (*) 0043_auto__add_field_essai_temperature_choix
  (*) 0044_initial
  (*) 0045_initial
  (*) 0046_initial
  (*) 0047_initial
  (*) 0048_initial
  (*) 0049_auto__add_physic__add_field_uniteproperty2_choix__add_field_uniteprop
e
  (*) 0050_initial
  (*) 0051_auto__add_physic__add_field_uniteproperty2_choix__add_field_uniteprop
e
  (*) 0052_initial
  (*) 0053_initial
  (*) 0054_auto__del_field_physic_description
  (*) 0055_initial
  (*) 0056_initial
  (*) 0057_initial
  (*) 0058_initial
  (*) 0059_initial
  (*) 0060_initial
  (*) 0061_auto__add_field_uniteproperty2_choix
  (*) 0062_initial
  (*) 0063_auto__add_field_uniteproperty2_lien2
  (*) 0064_initial
  (*) 0065_auto__add_field_essai_temperature_choix
  (*) 0066_initial
  (*) 0067_auto__add_field_physic_description
  (*) 0068_initial
  (*) 0069_auto__del_field_essai_temperature_val_champ__chg_field_essai_temperat
u
  (*) 0070_initial
  (*) 0071_auto__chg_field_uniteproperty2_lien2
  (*) 0072_initial
  (*) 0073_initial
  (*) 0074_initial
  (*) 0075_initial
  (*) 0076_initial
  (*) 0077_initial
  (*) 0078_initial
  (*) 0079_initial
  (*) 0080_auto__del_field_essai_temperature_val_champ
  (*) 0081_initial
  (*) 0082_auto__add_field_essai_temperature_choix2
  (*) 0083_initial
  (*) 0084_initial
  (*) 0085_auto__del_field_essai_temperature_choix2__add_field_essai_temperature
_
  (*) 0086_initial
  (*) 0087_initial
  (*) 0088_initial
  (*) 0089_initial
  (*) 0090_initial
  (*) 0091_initial
  (*) 0092_initial
  (*) 0093_initial
  (*) 0094_initial
  (*) 0095_auto__add_field_essai_temperature_val_champ
  (*) 0096_initial
  (*) 0097_auto__del_field_essai_temperature_val_champ
  (*) 0098_initial
  (*) 0099_initial
  (*) 0100_initial
  (*) 0101_auto__del_field_uniteproperty2_val_champ
  (*) 0102_initial
  (*) 0103_initial
  (*) 0104_auto__del_field_uniteproperty2_lien
  (*) 0105_initial
  (*) 0106_initial
  (*) 0107_auto__add_field_physic_name
  (*) 0108_initial
  (*) 0109_initial
  (*) 0110_initial
  (*) 0111_initial
  (*) 0112_auto__del_field_uniteproperty2_val1
  (*) 0113_initial
  (*) 0114_initial
  (*) 0115_auto__del_field_uniteproperty2_val2
  (*) 0116_initial
  (*) 0117_initial
  (*) 0118_initial
  (*) 0119_auto__del_field_uniteproperty2_val3
  (*) 0120_initial
  (*) 0121_auto__del_field_uniteproperty2_lien2
  (*) 0122_initial
  (*) 0123_auto__add_field_uniteproperty2_val2
  (*) 0124_initial
  (*) 0125_auto__del_field_uniteproperty2_val2
  (*) 0126_initial
  (*) 0127_initial
  (*) 0128_auto__del_field_uniteproperty2_val1
  ( ) 0129_initial
  ( ) 0130_initial
  ( ) 0131_initial
  ( ) 0132_initial
  ( ) 0133_initial
  ( ) 0134_initial
  ( ) 0135_initial
  ( ) 0136_initial
  ( ) 0137_initial
  ( ) 0138_initial
  ( ) 0139_auto__chg_field_physic_lapropriete
  ( ) 0140_initial
  ( ) 0141_auto__add_field_physic_lapropriete
  ( ) 0142_initial
  ( ) 0143_initial
  ( ) 0144_initial
  ( ) 0145_auto__chg_field_physic_lapropriete
  ( ) 0146_initial
  ( ) 0147_initial
  ( ) 0148_initial
  ( ) 0149_auto__add_donnee
  ( ) 0150_initial
  ( ) 0151_auto__add_physic2
  ( ) 0152_initial
  ( ) 0153_auto__chg_field_donnee_name
  ( ) 0154_initial
  ( ) 0155_auto__chg_field_uniteproperty2_choix
  ( ) 0156_initial
  ( ) 0157_auto__chg_field_uniteproperty2_choix
  ( ) 0158_initial
  ( ) 0159_auto__add_physic3__add_physic4__add_physic5__add_physic6
  ( ) 0160_initial
  ( ) 0161_auto__del_field_physic4_name__chg_field_physic4_lapropriete3__del_fie
l
  ( ) 0162_initial
  ( ) 0163_auto__chg_field_physic4_lapropriete3__chg_field_physic5_lapropriete4_
_

Dernière modification par sesame (01-09-2013 14:52:55)

Hors ligne

#4 01-09-2013 19:27:08

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : migrations

La quantité de ****_initial est effrayante.
J'ai bien peur qu'il ne faille faire un ménage par le vide des migrations et de repartir sur une base saine.

Hors ligne

#5 02-09-2013 07:22:38

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : migrations

bonjour

peux tu me dire comment procéder pour faire ce menage

merci

Hors ligne

#6 03-09-2013 07:20:26

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : migrations

je voudrai supprimer des migrations specifiques

python manage.py migrate material 0149 supprime juste cette migration ?

Hors ligne

#7 05-09-2013 09:33:24

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : migrations

Les questions sont trop ouvertes pour pouvoir y répondre précisément.

Pour repartir sur de bonnes bases:
1) avoir toutes les bases alignées sur le modèle actuel (cad, le même schéma dans la base de donnée pour toutes les tables de l'application).
2) noter le numéro de la dernière migration (X)
3) supprimer toutes les migrations du repertoire application/migrations
4) créer une migration initiale avec le numéro X+1
5) jouer cette migration en mode --fake
5b) probablement supprimer les migrations que south détecte comme ghost
6) lors de modification des models, je jamais refaire d'initial, mais uniquement des schemamigrations ou datamigrations

Hors ligne

#8 05-09-2013 12:34:21

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : migrations

j'ai suivi le tutorial avec manage.py schemamigration app --initial pour chaque migration...

j'ai dans C: xx dossiers avec xx etats d'avancements de la base

Si cela ne t'ennuie pas peux tu detailler les commandes a effectuer car je suis pas a l'aise avec south

pour ca que j'ai supprimé ou ajouté des champs et classes comme j'ai pu...

si je fais manage.py reset south, supprime toutes les migrations de tous les dossiers

c'est ennuyeux il me semble

pour supprimer les migrations juste concernant mon repertoire 03_07

rm -r 03_07\monprojet\migrations\   ?

jouer cette migration en mode --fake ?

probablement supprimer les migrations que south détecte comme ghost ?

Hors ligne

#9 10-09-2013 10:34:29

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : migrations

j'ai compris c'est simple a corriger merci

Hors ligne

Pied de page des forums