问题背景:
1、使用宝塔创建docker,一直遇到数据库未能初始化问题。于是找到官方的sql文件进行手工创建表
2、按官方的sql文件一直遇到#1709 - Index column size too large. The maximum column size is 767 bytes.的报错
1709的问题按
set global innodb_large_prefix = 1;
set global innodb_file_per_table = 1;
set global innodb_file_format = Barracuda;
操作了还是没用,直到修改为如下 ROW_FORMAT=DYNAMIC 可正常创建:
-- CreateTable
CREATE TABLE accounts (
id VARCHAR(255) NOT NULL,
token VARCHAR(2048) NOT NULL,
name VARCHAR(1024) NOT NULL,
status INTEGER NOT NULL DEFAULT 1,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- CreateTable
CREATE TABLE feeds (
id VARCHAR(255) NOT NULL,
mp_name VARCHAR(512) NOT NULL,
mp_cover VARCHAR(1024) NOT NULL,
mp_intro TEXT NOT NULL,
status INTEGER NOT NULL DEFAULT 1,
sync_time INTEGER NOT NULL DEFAULT 0,
update_time INTEGER NOT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- CreateTable
CREATE TABLE articles (
id VARCHAR(255) NOT NULL,
mp_id VARCHAR(255) NOT NULL,
title VARCHAR(255) NOT NULL,
pic_url VARCHAR(255) NOT NULL,
publish_time INTEGER NOT NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- AlterTable
ALTER TABLE feeds ADD COLUMN has_history INTEGER NULL DEFAULT 1;
问题背景:
1、使用宝塔创建docker,一直遇到数据库未能初始化问题。于是找到官方的sql文件进行手工创建表
2、按官方的sql文件一直遇到#1709 - Index column size too large. The maximum column size is 767 bytes.的报错
1709的问题按
set global innodb_large_prefix = 1;
set global innodb_file_per_table = 1;
set global innodb_file_format = Barracuda;
操作了还是没用,直到修改为如下 ROW_FORMAT=DYNAMIC 可正常创建:
-- CreateTable
CREATE TABLE
accounts(idVARCHAR(255) NOT NULL,tokenVARCHAR(2048) NOT NULL,nameVARCHAR(1024) NOT NULL,statusINTEGER NOT NULL DEFAULT 1,created_atDATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),updated_atDATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- CreateTable
CREATE TABLE
feeds(idVARCHAR(255) NOT NULL,mp_nameVARCHAR(512) NOT NULL,mp_coverVARCHAR(1024) NOT NULL,mp_introTEXT NOT NULL,statusINTEGER NOT NULL DEFAULT 1,sync_timeINTEGER NOT NULL DEFAULT 0,update_timeINTEGER NOT NULL,created_atDATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),updated_atDATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- CreateTable
CREATE TABLE
articles(idVARCHAR(255) NOT NULL,mp_idVARCHAR(255) NOT NULL,titleVARCHAR(255) NOT NULL,pic_urlVARCHAR(255) NOT NULL,publish_timeINTEGER NOT NULL,created_atDATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),updated_atDATETIME(3) NULL DEFAULT CURRENT_TIMESTAMP(3),) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- AlterTable
ALTER TABLE
feedsADD COLUMNhas_historyINTEGER NULL DEFAULT 1;