2017-10-20 20 views
-1

quand j'exécute la commandePas en mesure de changer le nom de clé primaire de la table d'authentification

python manage.py makemigrations 

le résultat est

You are trying to add a non-nullable field 'pk_bint_user_id' to appuser without a default; we can't do that (the database needs something to populate existing rows). 

Please select a fix: 

1) Provide a one-off default now (will be set on all existing rows with a null value for this column) 
2) Quit, and let me add a default in models.py 

Et mon modèle est ressembler comme suit:

class AppUser(AbstractBaseUser): 
    pk_bint_user_id = models.BigIntegerField(primary_key=True) 
    email = models.EmailField(
     verbose_name='email address', 
     max_length=255, 
     unique=True, 
    ) 

    fk_bint_travel_agency_user_id_or_corporate_user_id= models.BigIntegerField(blank=True,null=True) 
    chr_travel_agency_user_or_corporate_user =models.CharField('Agency user or Corporate user',max_length=5,blank=True,null=True) 
    chr_user_type = models.CharField('User type code',max_length=5,blank=True,null=True) 

    vchr_account_type=models.CharField('Account type',max_length=5,blank=True,null=True) 
    vchr_account_status=models.CharField('Account status',max_length=5,blank=True,null=True) 



    objects = MyUserManager() 

    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = [] 
    class Meta: 
     db_table='tbl_user' 

Tout ce que je veux personnaliser la clé primaire dans un nom différent de "id",

Répondre

0

Votre base de données est remplie? Je pense que peut-être votre table d'utilisateurs est peuplée et vous essayez de changer la structure avec les données.

Si ce champ n'est pas null et que vous avez des données dans la table des utilisateurs, vous devez faire quelque chose en tant que contrainte de base de données. Je recommande que si vous êtes juste sur le développement et non en production supprimer les données de la table des utilisateurs et puis le remplir à nouveau, avec la nouvelle structure

+0

En fait, je développe l'application à partir de zéro. Il n'y a pas de tables, je fais la migration initiale pour créer les tables dans ma base de données. :( –