Rus*_*bde 5 python django django-models
我的数据库中有一个旧表。我想在 Django 应用程序中创建一个模型。创建模型后,我使用 migrate 命令,然后它创建了一个具有自己名称的新表。
Django 提供了一个实用程序,可以通过检查数据库命令从现有数据库自动生成模型。
您可以通过执行以下命令内省现有数据库来创建模型
python manage.py inspectdb
Run Code Online (Sandbox Code Playgroud)
上面的命令会将 Django 可以从现有数据库创建的所有模型输出到 stdout。您可以使用标准 Unix 输出重定向将其保存为文件
python manage.py inspectdb > models.py # or pass the app_name.models.py if you want to generate them inside models.py file of specific app
Run Code Online (Sandbox Code Playgroud)
输出文件将保存到您的当前目录。将该文件移动到正确的应用程序,您就有了进一步自定义的良好起点。
您可以参考https://docs.djangoproject.com/en/4.1/ref/django-admin/#django-admin-inspectdb了解更多信息。
db_table您可以通过在模型的类上设置来指定表名称Meta。设置managed = False为阻止 Django 创建表。
class ExistingModel(models.Model):
...
class Meta:
db_table = 'existing_table'
managed = False
Run Code Online (Sandbox Code Playgroud)
进行这些更改后,我将恢复之前的迁移,删除迁移文件,然后makemigrations再次运行。
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |