Django执行数据库迁移报错

执行python manage.py makemigrations blog报错

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you install mysqlclient?

解决: 在项目目录init.py文件中添加

import pymysql
pymysql.install_as_MySQLdb()

再次执行python manage.py makemigrations blog报错

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2.

解决:将init.py文件中添加pymysql.version_info=(1,3,13,"final",0)

import pymysql
pymysql.version_info=(1,3,13,"final",0)
pymysql.install_as_MySQLdb()

再次执行python manage.py makemigrations blog

Migrations for 'blog':
    blog/migrations/0001_initial.py;
        - Create model Post

执行python3 manage.py sqlmigrate blog 0001

BEGIN;
CREATE TABLE "blog_post" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(250) NOT NULL, "slug" varchar(250) NOT NULL, "body" text NOT NULL, "publish" datetime NOT NULL, "created" datetime NOT NULL, "updated" datetime NOT NULL, "status" varchar(10) NOT NULL, "author_id" integer NOT NULL REFERENCES "auth_user" ("id"));
CREATE INDEX "blog_post_2dbcba41" ON "blog_post" ("slug");
CREATE INDEX "blog_post_4f331e2f" ON "blog_post" ("author_id");
COMMIT;

执行python3 manage.py migrate

Rendering model states... DONE
Applying contenttypes.ooo1_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length...OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK

迁移成功!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。