2016-03-02 62 views
3

我想在Django中獲取上次應用遷移的名稱。我知道django遷移存儲在django_migrations表中,但django.db.migrations.migration.Migration不是由該表支持的models.Model。這意味着你不能做:如何在Django中以編程方式獲取上一次遷移的名稱

migration_info = Migration.objects.all() 

有來自django_migrations retrieveing數據的任何內置的方式,或者我應該創建自己的只讀型號:

class MigrationInfo(models.Model): 
    class Meta: 
     managed = False 
     db_table = "django_migrations" 
+0

只是讀取migrations文件夾的內容並獲取最後添加的文件是否是一個選項?這將使用Python'os'包。 –

+2

也許這會幫助https://github.com/django/django/blob/1.9.2/django/core/management/commands/showmigrations.py#L38-L77 –

+0

@RobinPapa並非文件夾中的所有遷移都可以應用 –

回答

2

這部作品的Django 1.11:

from django.db.migrations.recorder import MigrationRecorder 

last_migration = MigrationRecorder.Migration.objects.latest('id') 
print(last_migration.app)  # The app where the migration belongs 
print(last_migration.name) # The name of the migration 
+0

適用於Django 1.8 – AlanSE

相關問題