使用Django迁移删除选项卡

2024-04-27 21:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从Rails迁移到Django并拥有一个现有的数据库。我通过python manage.py inspectdb > models.py创建了models.py,进行了更改,并测试了一些端点。一切似乎都很好。在

然后我运行python manage.py makemigrations和{}来进行初始的django miraction。在

我注意到一个旧Rail的特定模型/表ArInternalMetadata/ar_internal_metadata。我认为只要从models.py中删除模型并重新运行makemigrations就可以轻松地删除表,但是当我这样做时,django只说No changes detected。运行migrate也不会删除表。在


Tags: djangopy模型数据库managemodels端点ar
1条回答
网友
1楼 · 发布于 2024-04-27 21:14:43

明白了。当inspectdb从现有数据库中创建模型时,它将Meta内部类中的managed默认设置为False。在

class AssetCategories(FacadeModel):
    created_at = models.DateTimeField()
    updated_at = models.DateTimeField()
    name = models.CharField(max_length=255)
    deleted_at = models.DateTimeField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'asset_categories'

根据Django 2.1 Docs这将防止删除发生

If False, no database table creation or deletion operations will be performed for this model

Meta类中删除managed = False允许makemigrations/migrate删除表。在

相关问题 更多 >