Skip to content

没有初始化数据库自己创建数据表 #452

@jacochan

Description

@jacochan

问题背景:
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;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions