jukanntenn/django-blog-tutorial

在model添加tag字段后,重新生成数据后,数据库被清空了,以前的测试文章全不见了

Closed this issue · 18 comments

好像还没遇到过这种情况,数据库文件有加入git管理么

bdbai commented

理论上 migrate 不会影响到原有数据的,是不是操作 Git 的时候顺带把数据库文件弄丢了?可以提供一下修改后的代码么?

@bdbai 代码就是按教程修改的, 数据库文件加入git管理了

求问 如何能恢复数据

那就回退到没删除的版本吧,然后重新再试一下。

bdbai commented
git log # 找到有数据库的一次 commit hash
git reset <commit hash> # 不带尖括号,只要前六位

另外我觉得按照教程改代码pull 代码保持同步会有冲突, @zmrenwu 你怎么看?

我是尽量边写代码边写教程,可能有地方遗漏。如果有冲突的地方希望指出来,我改一下。

Sent from Mail Master
在2016年06月25日 17:53,bdbai 写道:
git log # 找到有数据库的一次 commit hash
git reset # 不带尖括号,只要前六位

另外我觉得按照教程改代码 与 pull 代码保持同步会有冲突, @zmrenwu 你怎么看?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

bdbai commented

@zmrenwu 换种说法,有些人想照着教程 DIY,下次他 pull 代码的时候就悲剧了...

@bdbai 这没办法吧。解决一下冲突咯。

@zmrenwu git 能管理 mysql 文件吗 ,我将mysql 文件加入 git 管理,但是进行版本回退后,django中的文章并没有删除

bdbai commented

@strugglingyouth MySQL 数据库的数据文件是存在别处的,在配置里面设定。你说的 MySQL 文件是指?

另外版本回退不一定会影响工作区,除非 git reset --hard 这样。

@bdbai 就是下面这个,用 git 管理不了
mysql-test

bdbai commented

@strugglingyouth 数据库不应该让 Git 管😂。我们提倡的是代码和数据分开,数据只要存在部署的服务器上即可。
另外这里面应该是一大堆二进制文件,并不是 Git 所擅长管理的。

我看上面 @zmrenwu 说把数据库文件加入git ,难道不是加这个

bdbai commented

我觉得他这是句疑问句。

恩 好吧

sqlite3的话加入git管理是没问题的。但是mysql的数据库文件似乎不在.git目录下,你应该不会加入git,所以我想你的文件应该还在的,找到mysql对应的表所在的目录,用sql工具查看一下,看数据是否真的被清空了。理论上来说migrate不可能删除数据。