使用 django 创建数据库方案或使用 powerdesigner 创建数据库方案

use django create database scheme or use powerdesigner create database scheme

我准备用 django 开始一个新项目,它涉及一些操作 database.I 有 2 种方法来获取方案:

  1. 使用powerdesigner设计数据库方案并输出sql,然后使用python manage.py inspectdb生成模型
  2. 设计模型然后使用python manage.py makemigrationspython manage.py migrate得到数据库方案。

有人解释一下这两种方式的区别是什么,我应该如何选择?

来自 inspectdb's 文档:

Use this if you have a legacy database with which you’d like to use Django. The script will inspect the database and create a model for each table within it.

如果您已经有一个可用的数据库并想在其上使用 django,那就更好了。它具有以下限制:

  1. If inspectdb cannot map a column’s type to a model field type, it’ll use TextField and will insert the Python comment 'This field type is a guess.' next to the field in the generated model.
  2. If the database column name is a Python reserved word (such as 'pass', 'class' or 'for'), inspectdb will append '_field' to the attribute name. For example, if a table has a column 'for', the generated model will have a field 'for_field', with the db_column attribute set to 'for'. inspectdb will insert the Python comment 'Field renamed because it was a Python reserved word.' next to the field.

也是一种快捷方式,不推荐用于启动django项目。

同时编写模型,运行 makemigrationmigrate 命令将创建包含自定义字段的数据库方案,例如:

auth_group                               
auth_group_permissions                   
auth_permission                          
auth_user                                
auth_user_groups                         
auth_user_user_permissions      

如果你想使用django系统,这些是必不可少的authentication backend,用户模型等是django的核心部分。