Команда inspectdb
Команда inspectdb применяется для создания классов моделей
Django на основе структуры существующей базы данных. Она анализирует
таблицы и генерирует код моделей, который можно скопировать в файл
models.py. Команда полезна при работе с унаследованной базой
данных или при интеграции с существующими системами.
Синтаксис
python manage.py inspectdb [table_name ...]
Пример
Давайте сгенерируем модели для всех таблиц в базе данных:
python manage.py inspectdb
Результат выполнения команды:
from django.db import models
class Article(models.Model):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=200)
content = models.TextField()
author_id = models.IntegerField()
created_at = models.DateTimeField()
class Meta:
db_table = 'articles'
class Comment(models.Model):
id = models.BigAutoField(primary_key=True)
article_id = models.IntegerField()
author = models.CharField(max_length=100)
text = models.TextField()
created_at = models.DateTimeField()
class Meta:
db_table = 'comments'
Результат выполнения кода:
"Generated models for 2 tables"
Пример
Давайте сгенерируем модель только для таблицы 'articles':
python manage.py inspectdb articles
Результат выполнения команды:
from django.db import models
class Article(models.Model):
id = models.BigAutoField(primary_key=True)
title = models.CharField(max_length=200)
content = models.TextField()
author_id = models.IntegerField()
created_at = models.DateTimeField()
class Meta:
db_table = 'articles'
Результат выполнения кода:
"Generated model for articles table"
Смотрите также
-
команда
migrate,
которая применяет миграции к базе данных -
команда
makemigrations,
которая создает новые миграции на основе изменений моделей -
команда
showmigrations,
которая показывает список миграций и их статус -
команда
sqlmigrate,
которая показывает SQL-запросы для миграции