Django 误删数据表结构恢复
最近写项目的时候,误在mysql中将某张由Django迁移生成的数据表删除,表中本身是空的,但是使用的是drop命令,将整个表结构都删了,为了恢复表,做了一些尝试,记录如下:
1、手写SQL语句重建表
这个方案是第一时间想到的,但是操作了一番后发现,实施起来难度比较大,因为原表是通过Django的迁移建出来的,其中涉及到许多约束,手写很难保证恢复到原先正常的状态,因此该方案被弃用。
2、从Mysql的二进制日志(binlog)中恢复
mysql的binlog记录了mysql的所有数据库结构变化以及数据变更的操作。binlog包括二进制日志索引文件(以.index结尾),二进制日志文件(.00000*结尾)。mysql的主从复制依赖的就是binlog来进行的。
以下是相关操作:
show variables like '%datadir%'; #指令获取
show binlog events [