SequoiaDB使用的是官方提供的Docker容器镜像,进容器看了一下,SequoiaDB的版本应该是3.2.3。
想试一下Django项目是不是可以直接转用SequoiaDB,就创建了一个Django项目,配置好数据库参数后直接执行python3 manage.py migrate
,初始化数据库,但得到了报错信息:
django.db.utils.OperationalError: (1030, 'Got error 40177 from storage engine')
然后打印了一下Django执行的SQL语句,依次如下:
SHOW FULL TABLES
CREATE TABLE `django_migrations` (`id` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY, `app` varchar(255) NOT NULL, `name` varchar(255) NOT NULL, `applied` datetime(6) NOT NULL)
SELECT engine FROM information_schema.tables WHERE table_name = ['django_migrations']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_migrations']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_migrations']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_migrations']
CREATE TABLE `django_content_type` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `name` varchar(100) NOT NULL, `app_label` varchar(100) NOT NULL, `model` varchar(100) NOT NULL)
SELECT engine FROM information_schema.tables WHERE table_name = ['django_content_type']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_content_type']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_content_type']
SELECT engine FROM information_schema.tables WHERE table_name = ['django_content_type']
ALTER TABLE `django_content_type` ADD CONSTRAINT `django_content_type_app_label_model_76bd3d3b_uniq` UNIQUE (`app_label`, `model`)
在执行到最后一句是报错。
直接用mysql连接SequoiaDB的MySQL实例,创建数据库然后依次执行上述的SQL语句,在执行ALTER TABLE django_content_type ADD CONSTRAINT django_content_type_app_label_model_76bd3d3b_uniq UNIQUE (app_label, model)
时,也同样得到报错信息:
ERROR 1030 (HY000): Got error 40177 from storage engine
但如果用MySQL官方的docker镜像(mysql:5.7)创建MySQL容器,然后执行Django项目的migrate操作,是能够成功完成建表的。
因此判断应该是SequoiaDB的问题。或者说是我的问题?