我尝试编写特定迁移文件的测试。基本上,我想测试一对迁移之间数据库和数据的当前状态。我使用
我们的项目中有很多迁移文件,因此运行所有这些文件的单元测试需要很长时间。通常,我会在
使用这个设置,测试将会运行得非常快。问题是无法找到用于测试的迁移文件(
所以我不得不在测试中再次包含迁移模块。
有没有一种方法可以在不运行所有迁移文件的情况下包含迁移文件?在我的情况下,我想跳过从
我考虑压缩前89个迁移并将结果放在一个单独的文件夹中,与
MigrationExecutor
如下:executor = MigrationExecutor(connection)
old_apps = executor.loader.project_state(self.migrate_from).apps
executor.migrate(self.migrate_from)
# do something here
executor.migrate(self.migrate_to)
我们的项目中有很多迁移文件,因此运行所有这些文件的单元测试需要很长时间。通常,我会在
settings_test.py
中将迁移模块设置为None
:MIGRATION_MODULES: {
'my_app': None
}
使用这个设置,测试将会运行得非常快。问题是无法找到用于测试的迁移文件(
self.migrate_from
和 self.migrate_to
)。django.db.migrations.exceptions.NodeNotFoundError: Node ('poleluxe', '0090_auto_previous_migration') not a valid node
所以我不得不在测试中再次包含迁移模块。
有没有一种方法可以在不运行所有迁移文件的情况下包含迁移文件?在我的情况下,我想跳过从
0001
到0089
的所有迁移,仅运行0090
(作为self.migration_from
)和0091
(作为self.migrate_to
)。我考虑压缩前89个迁移并将结果放在一个单独的文件夹中,与
0090
和0091
一起引用该迁移文件夹进行测试。但是,我不确定这是否是一个好的解决方案。