Использовать django создать схему базы данных или использовать powerdesigner создать схему базы данных
Я готов начать новый проект с django, и он включает в себя некоторые операции с базой данных. У меня есть 2 способа получить схему:
- используйте powerdesigner, спроектируйте схему базы данных и выведите sql, затем используйте
python manage.py inspectdb
генерировать модели. - разработать модель, а затем использовать
python manage.py makemigrations
а такжеpython manage.py migrate
получить схему базы данных.
Кто-нибудь объясняет, в чем разница между этими двумя способами и как мне выбрать?
1 ответ
Из документации inspectdb:
Используйте это, если у вас есть устаревшая база данных, с которой вы хотели бы использовать Django. Скрипт проверит базу данных и создаст модель для каждой таблицы в ней.
Лучше, если у вас уже есть работающая БД и вы хотите использовать на ней django. У этого есть ограничения как:
- Если inspectdb не может сопоставить тип столбца с типом поля модели, он будет использовать TextField и вставит комментарий Python "Этот тип поля является предположением". рядом с полем в сгенерированной модели.
- Если имя столбца базы данных является зарезервированным словом Python (например, "pass", "class" или "for"), inspectdb добавит "_field" к имени атрибута. Например, если в таблице есть столбец "for", сгенерированная модель будет иметь поле "for_field" с атрибутом db_column, установленным в "for". inspectdb вставит комментарий Python "Поле переименовано, потому что это было зарезервированное слово Python". рядом с полем.
Также это быстрый способ, не рекомендуется, если вы запускаете проект django.
Также пишу модели, работает makemigration
а также migrate
Команда создаст схему базы данных, содержащую настраиваемые поля, такие как:
auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
Что важно для системы django, если вы хотите использовать ее аутентификационный бэкэнд, модель пользователя и т. Д., Которые являются основными частями django.