相关疑难解决方法(0)

我不小心删除了Django中的migrations文件夹

我使用 Django 和 Postgre 作为数据库。所以我完成了所有迁移,但后来我不小心删除了编辑器中的迁移文件夹。因此,我在终端中再次执行了“python manage.py makemigrations”,希望能够找回该文件夹,但它回复“未检测到任何更改”。我该怎么做才能取回文件夹?简单地再次迁移是错误的吗?我尝试创建一个新数据库并重新执行相同的过程,但它仍然显示“未检测到更改”。

我非常感谢你的帮助。:)

django

7
推荐指数
2
解决办法
6233
查看次数

Django 迁移未检测到所有更改

我有以下型号。 BaseClass1BaseClass2是模型使用的抽象模型。

在这种情况下,模型AdBreak由视图集和序列化器使用。当我运行时python manage.py makemigrationsAdBreak检测到模型的变化。模型AdBreakStatus没有被创建。

由于,AdBreakStatus链接到AdBreak,我AdBreakStatus也期待迁移。我的理解有误吗?

编辑

在初始状态,只有 AdBreak 和 BaseClass1 模型。添加了新状态、AdBreakStatus 和 BaseClass2 模型。AdBreak 中的一些字段已移至 AdBreakStatus。

在此先感谢您的帮助。

class BaseClass1(models.Model):
    class Meta:
        abstract=True
    timestamp = models.DateTimeField(auto_now_add=True)

class BaseClass2(models.Model):
    class Meta:
        abstract=True
    other_field = models.IntegerField()

class AdBreak(BaseClass1):
    class Meta:
        db_table = "ad_break"
    ad_break_id = models.AutoField(primary_key=True)
    ... # Other fields

class AdBreakStatus(BaseClass2):
    class Meta:
        db_table = "ad_break_status"
    ad_break = models.ForeignKey(AdBreak)
    ... # Other Fields
Run Code Online (Sandbox Code Playgroud)

python migration django

6
推荐指数
1
解决办法
3837
查看次数

我应该对我的所有应用程序运行 Django“makemigrations”吗?

我刚刚将我的项目升级到 Django 1.8.4。我以前从未在这个项目中使用过迁移。我发现我必须对我的四个应用程序显式运行“makemigrations”命令,因为它们包含 auth_user 表的外键。我是否需要对其他六个应用程序运行 makemigrations 命令?我问的原因是因为文件说,

如果您的应用程序已经有模型和数据库表,并且还没有迁移(例如,您针对以前的 Django 版本创建它),则需要将其转换为使用迁移”

但是,当我对我的“家庭”应用程序运行命令时,我收到了这条消息:

No changes detected in app 'home'
Run Code Online (Sandbox Code Playgroud)

将项目转换为 Django 1.8 时,是否应该对所有应用程序运行 makemigrations 命令,然后在实际数据库表已存在的情况下运行“migrate --fake-initial”?

谢谢。

django django-models

1
推荐指数
1
解决办法
8049
查看次数

标签 统计

django ×3

django-models ×1

migration ×1

python ×1