Bawiłem się w domu z Django i Django ORM i muszę powiedzieć, że jest jednym z najlepszych pod względem łatwości użycia.
Zastanawiałem się jednak, czy da się go użyć „na odwrót”.
Zasadniczo chciałbym wygenerować modele Django z istniejącego schematu bazy danych (z projektu, który nie używa django i jest dość stary).
czy to możliwe?
Aktualizacja: ta baza danych to Oracle
dev
wersji (z większym podkreśleniem ?? może nie ..)(Django 1.7.1) Po prostu uruchomienie
python manage.py inspectdb
utworzy klasy dla wszystkich tabel w bazie danych i wyświetli je na konsoli.Zapisz to jako plik, używając standardowego przekierowania wyjścia Unix:
(To działa dla mnie z mysql i django 1.9)
źródło
Stworzyłem aplikację wielokrotnego użytku opartą na narzędziu poleceń inspectdb, Django Inspectdb Refactor .
Spowoduje to podzielenie modeli na różne pliki w folderze modeli z istniejącej bazy danych. Pomaga to w zarządzaniu modelami, gdy stają się one duże.
Możesz zainstalować go przez pip:
pip install django-inspectdb-refactor
Następnie zarejestruj aplikację w settings.py jako
inspectdb_refactor
Następnie możesz go używać z linii poleceń jako:
python manage.py inspectdb_refactor --database=your_dbname_defined_in_settings --app=your_app_label
Spowoduje to pomyślne utworzenie folderu modeli ze wszystkimi tabelami jako różnymi plikami modeli w aplikacji. Na przykład:
Więcej szczegółów można znaleźć tutaj.
źródło
get_meta() missing 1 required positional argument: 'is_partition'
. Korzystanie z django 2.0