Sql adatátvitelt egyik asztalról a másikra, a blog Artem Maltsev

Volt egy következő probléma: Bizonyos alkalmazásokhoz szükséges volt, hogy távolítsa el a területen tags = TaggableManager (üres = True) (és így a függőség Django-taggit). Mint mindig, most mossa a pályáról hívás makemigration, aki megtette a melót. De ha hívod áttérni egy másik projekt ugyanazokat a migráció hiba történik, amely taggit alkalmazás található a migráció. Persze, logikus, hogy a migráció lesz szükség ebben az alkalmazásban.

Most rájöttem, hogy egyszerűen lehetne javítani a migráció, amely azért jött létre taggit terén, és ahol eltávolítják, így ha még nem tette meg, és megváltoztatja az adatok szerkezete az asztal, a következő lépések segíthetnek.

Adatok átvitele a más táblázat szerkezete

Tegyük fel, hogy van egy alkalmazás és projektek projects_project asztal területeken:

Szeretnénk szerkezete a következő:

Így látjuk a következő módosításokat:

  1. title_in_link átnevezték hint.
  2. Add is_boder területén ugyanakkor szükség van rá.
  3. BORDER_WIDTH, amely lehet üres.
  4. Címkék eltávolítása terén

És most „kézzel” helyes tábla szerkezete:

  1. Nevezze át a táblázatot: projects_project -> projects_project_old.
  2. Az összes törlése alkalmazás migráció, valamint távolítsa el a megfelelő bejegyzéseket a migrációs táblázat django_migrations az adatbázisban.

És törölje az összes sort talált.

  1. Hívás makemigration alkotnak 0001_initial.py (ezt úgy kell értelmezni, hogy szükséges, hogy visszaállítsa a táblázatot az SQL parancsok).
  2. Hívás vándorolnak, és mi az adatbázis projects_project létrehoz egy táblázatot a megfelelő adatszerkezet.
  3. Írja sql adatátviteli kódot projects_project_old a projects_project:

Vegyünk egy példát: mint látható, van egy sor, hogy töltse ki a mezőket. Példaként minőségű internet nem találtam tehát, hogy ez a post született, hogy töltse ezt a dolgot :)

Vegye figyelembe, hogy BORDER_WIDTH nem tudjuk kitölteni, mert lehet, hogy üres, de is_border van, hogy töltse ki, de mivel nincs információ erről a területről, a legegyszerűbb -, hogy töltse ki HAMIS értékre minden rekordot. Mint lehetőség, akkor majd levelet Django migráció feltölti mezőket IGAZ vagy HAMIS rendelkezésre állásától függően bármilyen érték terén border_color, de ez egy másik történet.

További megjegyzés, hogy a mező sorrendjét egybeesik a Számvevőszék sql szó, így meg kell elkülöníteni ezen a területen dupla idézőjelek közé.

  1. Tábla eltávolítása projects_project_old.

Most, ennyi az egész. Még egyszer, ez például azok számára, akik véletlenül eltörte az adatstruktúra egy táblázat, vagy eltört, vagy a migráció, így azt el kell hagyni az alkalmazástól függően. Ez egy hosszú „sql-kézikönyv” módon rögzíteni a szerkezetet, ezért mielőtt törli a migráció, csak próbálja kijavítani :)

Adatátvitel kapcsolatos táblázatok

Tegyük fel, hogy van egy tábla: galéria és kép. kép táblázat tartalmazza az idegen kulcs a tábla galériában.

Ez az eset egy kicsit bonyolultabb: ha megpróbál a fenti 4. lépésben Django valószínűleg nem fog panaszkodni, valahogy így:

kell átnevezni az index, hogy megoldja a problémát:

Ezt meg lehet tenni a GUI pgadmin:

Sql adatátvitelt egyik asztalról a másikra, a blog Artem Maltsev

A szükséges kód a zöld szín jelzi. Most jobb klikk klikk index hívja a helyi menüt, és válassza ki a Tulajdonságok:

Sql adatátvitelt egyik asztalról a másikra, a blog Artem Maltsev

Itt kell átnevezni egy index, például úgy, hogy mellékelik „_old”.

Most megint megpróbáljuk követni a 4. lépésben, majd kövesse a többi fent leírt lépéseket.

0 out of 5 (0 szavazat)

Kapcsolódó cikkek