Команда inspectdb

Команда inspectdb применяется для создания классов моделей Django на основе структуры существующей базы данных. Она анализирует таблицы и генерирует код моделей, который можно скопировать в файл models.py. Команда полезна при работе с унаследованной базой данных или при интеграции с существующими системами.

Синтаксис

pythonpython manage.py inspectdb [table_name ...]

Пример

Давайте сгенерируем модели для всех таблиц в базе данных:

pythonpython manage.py inspectdb

Результат выполнения команды:

pythonfrom 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'

Результат выполнения кода:

python"Generated models for 2 tables"

Пример

Давайте сгенерируем модель только для таблицы 'articles':

pythonpython manage.py inspectdb articles

Результат выполнения команды:

pythonfrom 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'

Результат выполнения кода:

python"Generated model for articles table"

Смотрите также

  • команда migrate,
    которая применяет миграции к базе данных
  • команда makemigrations,
    которая создает новые миграции на основе изменений моделей
  • команда showmigrations,
    которая показывает список миграций и их статус
  • команда sqlmigrate,
    которая показывает SQL-запросы для миграции