1 JavaChen 的 Django ORM 三部曲
JavaChen 的博客 讲解了 Django 中与数据库相关的一些比较重要的内容,当然最完整的要看官方文档,但这系列文章的好处是可以快速查询到需要的命令或者参数含义。这三篇文章是递进关系,首先是 Django 如何与数据库建立关系,其次是运用 Django 对数据库进行增删查改,最后是 Django 的数据库不能满足需求的情况下,如何调用原生 SQL 操作。
讲解了 Django models 中:
- manage.py 涉及到 models 的命令
- 字段的类型
- 字段的参数
- Meta 的属性
- models 的方法
- 模型之间的关系:外键、多对一、多对多(不建议)、一对一
- 模型的继承(这样就可以子类去建表,父类不需要再建表)
- 用 Meta 的
db_table
属性设置数据库中的表明
- queryset 对象的 CRUD 操作
- 使用原生的 SQL 查询
.objects.raw()
2 kawabangga 的数据迁移
介绍了如何生成空的 migrations 文件,然后写入自己想迁移的数据。同时,也提到常用的两种传统的数据库复制操作。
Django 如果做过 makemigrations,在 Django 包所在的位置也会出现改变,所以在做 makemigrations 前,最好先 git 一次,以便出现问题回滚。
介绍了最常用的解决 migrate 失败的方法,就是删了重来。
3 Django 的数据库导入/导出 dumpdata and loaddata
Django 最传统的 dumpdata 成 json,然后在新 Django 服务中 去 loaddata 导入数据库。
这样做的问题:1、如果数据库过大就会导入不成功。如下文的评论提到一样
也会出现:2、导入以后涉及到用户的关系等表出现问题。所以这篇作者还是建议直接在 MySQL 里面复制或者导入/导出数据库更稳定可靠。
另外还有一篇关于 dumpdata/loaddata 相关参数的介绍可看。
8 Useful Django Dumpdata and Loaddata Commands
4 关于 migrate 的 --fake
参数
意思是这个表我以前已经建好了,用 South 只是纪一下这个创建记录,下次 migrate 的时候不必再创建了。
这里 South 是 Django 1.7 及以前的数据库迁移工具,现在整合进了 Djano 的 migrate。
5 Django 非传统的数据库复制与迁移(涉及到的数据库路由)
以下两篇文章都涉及到 Django 的数据库路由。
Migrating Django from MySQL to PostgreSQL the Easy Way 2010
Migrating data between databases
这一篇详解了 Django 如何与现有的数据库进行整合
网友评论