Django数据库设置

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 条评论)
   
验证码:

相关文章

推荐文章

'); })();