我有一个正在处理的 Django 项目,其中包含很多表和数据。我们仍处于开发模式,因此我们正在进行大量测试。我希望现在能够让一些用户访问该项目,以便使用假数据进行操作。我花时间设置所有虚假数据,以便当他们打开网络应用程序时,它已经填充了处于各种状态的记录 - 因为他们可能会在系统投入生产时找到它。
我的目标是让他们玩转一切,然后有一个很大的“重置”按钮,他们可以点击它,这将使整个事情回到原点——可以这么说。基本上,它会将所有记录和数据恢复到我将其与数据一起交给他们时的状态。这样,他们可以四处乱转,测试一些东西,然后重新开始做更多的测试。
编辑 - 我应该说它只是一个测试人员,所以重置不会影响其他任何人
我在运行 mysql restore 命令的 Django 中快速查看,但它挂起。我的观点是这样的:
def reset_db(request):
reset = "mysql -v -u garfonzo -pMyPassword dbName < db_reset.sql"
os.system(reset)
return HttpResponse("success?")
它应该做的就是将数据库恢复到原始状态。但是,它挂起。使用该-v
命令,我看到它所做的最后一件事是:
...a whole bunch of MySQL queries.... then
--------------
/*!40000 ALTER TABLE `auth_permission` ENABLE KEYS */
--------------
--------------
UNLOCK TABLES
--------------
--------------
DROP TABLE IF EXISTS `auth_user`
--------------
它只是坐在这里......什么都不做,然后我的网络应用程序没有响应。我必须终止进程并重新开始(手动重置)。
我想我的问题是双重的:
- 这是为用户实现重置按钮的最佳方式吗?如果没有,有什么更好的方法?
- 如果这是实现这一目标的最佳方法,为什么代码会挂起?
谢谢你的帮助。