2009-10-29 10 views

Odpowiedz

16

Istnieje narzędzie o nazwie manage.py inspectdb do generowania modeli z istniejącej bazy danych. Działa całkiem nieźle.

$ python manage.py inspectdb > models.py 
+2

Tak, Django 'zarządzać inspectdb' powinno być to, czego szukasz. – Michael

3

Jeśli Twoja baza danych nie jest bardzo prosta - lub bardzo dobrze zaprojektowana - okaże się, że źle pasuje do Django.

Podczas gdy reverse engineering działa dobrze, może się okazać, że oryginalny projekt bazy danych był wadliwy i masz wiele niezręcznych obejść.

Pytanie jest jednym z "starszego oprogramowania", które działa ze starym modelem danych.

Proponuję wykonać następujące czynności.

  1. Zaprojektuj poprawny model danych, używając Django.

  2. Zamapuj poprawny model na to, co masz.

  3. Napisz skrypt konwersji, który używa prostego, bezpośredniego SQL i Django ORM do migrowania danych z systemu innego niż Django do lepszego modelu.

    • Jeśli posiadasz starsze oprogramowanie, musisz opracować odpowiedni harmonogram przesyłania danych.

    • Jeśli nie masz żadnego starszego oprogramowania, przeprowadzisz tę konwersję jeden raz.