Django数据库设置
在之前我创建了一个myfirstapp,并且新建了一个默认Hello页面。
在启动
python manage.py runserver 8000
的时候,可以注意到提示有15 unapplied migrations。
Django默认情况下,已经加入了admin/auth/contenttypes/sessions等内置应用。
可以在mysite/settings.py里面看到INSTALLED_APP配置。
而这些应用都是需要数据库支持的。并且也是使用Django的ORM机制编写。有自己的migration文件。
Migration文件就是一些对于数据库表格新建和修改的程序。Django依赖这些文件,确保程序对数据库的要求和数据库当前的表结构一致。
如何应用这些文件,则是需要调用Django的migration命令。
不过在此之前,我们需要看看数据库的配置。
Django使用的数据库主要就是关系型数据库,常用的数据库是mysql, postgre。
需要用到不同的数据库引擎。
ENGINE的配置主要是'django.db.backends.sqlite3', 'django.db.backends.postgresql', 'django.db.backends.mysql', 'django.db.backends.oracle', 还有一些其它的可以参考。
我在这边建议使用postgre或者mysql。
Mysql的话在python 3.x环境下,需要安装mysql python库,推荐使用mysqlclient,而不是mysql官网上的mysql-connector,mysqlclient在windows和Mac上安装都多少有些奇怪的问题,可以参看我之前写的mysqlclient安装。
如果只是测试玩一下,完全可以使用默认的sqlite配置。
Python默认有对sqlite访问的支持,所以默认配置情况下,就会在本地产生一个db.sqlite3的文件,就可以使用。
配置完数据库引擎,就可以直接migrate了。
可以看到migrate之前db.sqlite3的文件大小是0。
我们运行python manage.py migrate进行migrate。
这是我们可以看到db.sqlite3的文件变成了131,072 bytes。
这就说明我们的migrate对数据库写入了表格和数据。
我们可以打开db.sqlite3这个文件,看看写入了写什么表格。
这其中有一个django_migrations的表格,记录了所有migration文件的执行情况。之后Django会用这个表格的数据来帮助做数据库的migration或者回滚到特定版本的操作。
我们可以看看这个文件里面写的都是写什么内容。
可以看到这就是我们最早刚开始没有应用的15条migrations。
这时候再启动server,就不再会提示没有应用migration了。
留言与评论(共有 0 条评论) |