def find_unsafe_migrations(connection):
loader = MigrationLoader(connection)
disk_migrations = set(loader.disk_migrations.keys())
new_migrations = disk_migrations.difference(loader.applied_migrations)
unsafe_migrations = []
for app_name, migration_name in new_migrations:
migration = loader.get_migration(app_name, migration_name)
project_state = loader.project_state((app_name, migration_name), at_end=False)
result = analyze_migration(connection, migration, project_state)
if result:
unsafe_migrations.append(result)
unsafe_migrations = sorted(unsafe_migrations, key=operator.attrgetter('app_name', 'migration_name'))
conflicts = loader.detect_conflicts()
for app, names in conflicts.items():
unsafe_migrations.append(MigrationConflict(app_name=app, migration_names=names))
return unsafe_migrations
评论列表
文章目录