-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
问题背景:
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),
PRIMARY KEY (`id`)
) 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),
PRIMARY KEY (`id`)
) 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),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
-- AlterTable
ALTER TABLE feeds
ADD COLUMN has_history
INTEGER NULL DEFAULT 1;