Používam django 1.8.
Teraz potrebujem pridať niekoľko vlastných polí založených na permisions, takže som vytvoril súbor YML z takýchto pythonových modelov
description:
permissions: ["ADMIN"]
award:
permissions: ["USER"]
Jej funkčné jemné, ale môj problém, ak niektoré chnages názvy polí alebo reomves niektoré pole, potom musím tiež odrážať, že v mojom súbore yml rovnako.
Tak som premýšľal, keď používateľ beží migrácia, potom ak niektorí, ako by som mohol byť schopný vidieť
- Ak je pole odstránené, musím odstrániť danú položku zo súboru yml
- Ak je pole premenované, musím ho premenovať
- ak je nové pole pridané potom potrebujem pridať prázdny riadok pre to
Ako to môžem spraviť
odpovede:
1 pre odpoveď č. 1Po vytvorení migrácie môžete manuálne zmeniť triedu migrácie základňovej verzie na vlastnú podtriedu s prepísanou apply
metóda
from django.db import migrations
class MyBaseMigration(migrations.Migration):
def apply(self, project_state, schema_editor, collect_sql=False):
for operation in self.operations:
"""
Examine operation classes here and provide end-user notes
"""
return super(MyBaseMigration, self).apply(project_state, schema_editor, collect_sql=collect_sql)