And*_*yko 6 python django django-migrations
我有 Django 应用程序和迁移文件002_auto.py,它使用Django RunPython来更改数据库。我不知道将来会创建多少迁移文件,但我希望该文件002_auto.py作为迁移过程的最后一部分应用。
如何在执行 django 迁移时将迁移设置为最后一个执行,而无需每次我想执行migrate命令时执行任何手动步骤(或dependencies每次添加新迁移时更改变量)?
ps我查看了 django 迁移文档和其他文章,但没有成功。
您可以对migrate命令进行子类化并在super调用后放置此代码
# project/myapp/management/commands/custom_migrate.py
from django.core.management.commands.migrate import Command as MigrateCommand
class Command(MigrateCommand):
def handle(self, *args, **options):
super().handle(*args, **options)
# put your code from 002_auto.py here
Run Code Online (Sandbox Code Playgroud)
应将此命令添加到 INSTALLED_APPS 中的应用程序中。然后你可以这样称呼它
python manage.py custom_migrate
Run Code Online (Sandbox Code Playgroud)
阅读有关自定义命令的更多信息https://docs.djangoproject.com/en/1.10/howto/custom-management-commands/