在Django中为现有数据库表创建模型

lpwwtiir  于 2023-05-30  发布在  Go
关注(0)|答案(2)|浏览(249)

我在数据库中有一个旧表。我想在Django应用程序中创建一个模型。在创建了一个模型之后,我使用migrate命令,然后它创建了一个具有自己名称的新表。

xpcnnkqh

xpcnnkqh1#

Django提供了一个实用程序,可以通过inspectdb命令从现有数据库自动生成模型。
您可以通过执行以下命令来内省现有数据库来创建模型

python manage.py inspectdb

上面的命令将输出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

输出文件将保存到当前目录。将该文件移动到正确的应用程序,您就有了进一步自定义的良好起点。
您可以访问https://docs.djangoproject.com/en/4.1/ref/django-admin/#django-admin-inspectdb以获取更多信息。

qv7cva1a

qv7cva1a2#

您可以通过在模型的Meta类上设置db_table来指定表名。设置managed = False以阻止Django创建表。

class ExistingModel(models.Model):
    ...

    class Meta:
        db_table = 'existing_table'
        managed = False

完成这些更改后,我将revert the previous migration,删除迁移文件,然后再次运行makemigrations

相关问题