Django将默认的SQLite更换为MySQL的实现
1、注释默认的SQLite3配置:
blogproject/settings.py ''' DATABASES={ 'default':{ 'ENGINE':'django.db.backends.sqlite3', 'NAME':os.path.join(BASE_DIR,'db.sqlite3'), } } '''
2、添加MySQL配置(配置你自己的mysql库前提是你已经有能够供自己使用的MySQL库了)
DATABASES={ 'default':{ 'ENGINE':'django.db.backends.mysql',#固定配置 'HOST':'127.0.0.1',#mysql地址 'PORT':'3306',#端口号 'NAME':'guest',#库名(组名) 'USER':'root',#用户 'PASSWORD':'123456',#密码 'OPTIONS':{'init_command':"SETsql_mode='STRICT_TRANS_TABLES'",}, } }
迁移数据库
为了让Django完成翻译,使用我们在modele.py已经创建好的这些数据库表,我们请出我的工程管理助手manage.py。激活虚拟环境,切换到manage.py文件所在的目录下,分别运行pythonmanage.pymakemigrations和pythonmanage.pymigrate命令:
PSD:\xuexi\python\\django2\blogproject>pythonmanage.pymakemigrations Migrationsfor'blog': blog\migrations\0001_initial.py: -CreatemodelCategory -CreatemodelPost -CreatemodelTag -Addfieldtagstopost PSD:\xuexi\python\web接口开发\django2\blogproject>pythonmanage.pymigrate Operationstoperform: Applyallmigrations:admin,auth,blog,contenttypes,sessions Runningmigrations: Applyingcontenttypes.0001_initial...OK Applyingauth.0001_initial...OK Applyingadmin.0001_initial...OK Applyingadmin.0002_logentry_remove_auto_add...OK Applyingcontenttypes.0002_remove_content_type_name...OK Applyingauth.0002_alter_permission_name_max_length...OK Applyingauth.0003_alter_user_email_max_length...OK Applyingauth.0004_alter_user_username_opts...OK Applyingauth.0005_alter_user_last_login_null...OK Applyingauth.0006_require_contenttypes_0002...OK Applyingauth.0007_alter_validators_add_error_messages...OK Applyingauth.0008_alter_user_username_max_length...OK Applyingblog.0001_initial...OK Applyingsessions.0001_initial...OK
仅供参考你的数量可能没有这么多
当我们执行了pythonmanage.pymakemigrations后,Django在blog应用的migrations\目录下生成了一个0001_initial.py文件,这个文件是Django用来记录我们对模型做了哪些修改的文件。目前来说,我们在models.py文件里创建了3个模型类,Django把这些变化记录在了0001_initial.py里。
不过此时还只是告诉了Django我们做了哪些改变,为了让Django真正地为我们创建数据库表,接下来又执行了pythonmanage.pymigrate命令。Django通过检测应用中migrations\目录下的文件,得知我们对数据库做了哪些操作,然后它把这些操作翻译成数据库操作语言,从而把这些操作作用于真正的数据库。
如果你使用的是mysql会生成0001_auto_20180507_2145.py
如果你需要在mysql和SQLite3之间切换你需要重新执行pythonmanage.pymakemigrations和pythonmanage.pymigrate命令,而且你原来库中的数据不会转移(执行完上面两个命令只会在新的数据库中创建modele.py中的表)。
以上这篇Django将默认的SQLite更换为MySQL的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。