zoukankan      html  css  js  c++  java
  • Django初始数据库迁移操作,安装pymysql.

    给Django配置mysql数据库

    现在settings中将DATABASES重新设置

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': "databasename",
    'PASSWORD': "password",
    'USER':"rusername",
    'HOST': "localhost",
    'PORT': 3306,

    'OPTIONS': { "init_command": "SET default_storage_engine='INNODB'"

    } #设定mysql数据库的初始引擎,也可以加入其他字段,如 chaeset等
    }
    }

    执行python manage.py makemigrations时,报错:

    'Did you install mysqlclient or MySQL-python?' % e
    django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.
    Did you install mysqlclient or MySQL-python?

    经过上网搜索得知,MySQLdb并不支持Python3.5,因此只能找别的类库代替。

    解决方法:

    使用pymysql代替MySQLdb,因为两者的用法完全一致,步骤:

    1. PIP install pymysql

    2. 执行成功后,打开__init__.py,添加如下:

    import pymysql
    pymysql.install_as_MySQLdb()

    3. 重新执行python manage.py makemigrations,成功。

     

    实际上按照给出的提示是要安装mysqlclient的,但是在pip下安装会报错,要去下载执行文件,我比较懒,就换一个方式吧.后面如果出错,再来更新,嘿嘿嘿.

    接着执行python3 mange.py migrate,报错如下:

    WARNINGS:
    ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
        HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it.

    说明当前使用的mysql数据库不是严格模式.严格模式下:

    1.不支持对not null字段插入null值

    2.不支持对自增长字段插入""值

    3.不支持text字段有默认值

    需要进行数据库的改动,以防止bug出现.

    在settings中,数据库设置下面插入:

    DATABASES['default']['OPTIONS']['init_command'] = "SET sql_mode='STRICT_TRANS_TABLES'"

  • 相关阅读:
    SqlDataReader 和SqlDataAdapter 区别
    【面筋烧烤手册】20210301
    【CSS】组件中怎么对css进行处理的
    【CSS】实现五点布局
    【面筋烧烤手册】20200228
    【JavaScript】Class类
    【面筋烧烤手册】CSS
    【面筋烧烤手册】函数柯里化延伸的知识点
    【PlantAPP】TS在RN的具体应用
    【面筋烧烤手册】网络安全
  • 原文地址:https://www.cnblogs.com/xiujin/p/9693794.html
Copyright © 2011-2022 走看看