[PYTHON] Renommer le nom de la colonne avec django-south

Je le vérifie environ tous les un an et demi.

supposition

--Depuis la version 1.7, le sud a été incorporé dans django, mais pour diverses raisons, 1.6 ou moins est utilisé.

Procédure de travail

$ python manage.py syncdb
$ python manage.py schemamigration app --initial
$ python manage.py migrate --list
$ python manage.py migrate app --fake 0001  #Faux parce qu'il y a déjà une table
$ python manage.py datamigration app underscore  #La partie sous-score peut être n'importe quoi

Frapper la migration de données générera un fichier appelé 0002_underscore.py dans le répertoire des migrations. Ajoutez le code «Quelles modifications apporter» à ce fichier. Cette fois, je veux le renommer, donc j'appellerai la méthode rename_column. Seules deux lignes à deux endroits, en avant et en arrière, sont réellement ajoutées.

class Migration(DataMigration):

    def forwards(self, orm):
        "Write your forwards methods here."
        db.rename_column('app_division', 'desc', '_desc')  # <-ici

    def backwards(self, orm):
        "Write your backwards methods here."
        db.rename_column('app_division', '_desc', 'desc') # <-ici

これが書けたらまたmanage.py

$ python manage.py migrate app 0002_underscore
$ sqlite3 nannrakano.db '.s' | grep app_division  #Vérification

Recommended Posts

Renommer le nom de la colonne avec django-south
Remplacez les noms / valeurs des colonnes par pandas dataframe
Obtenir une colonne de DataFrame avec DataFrame