[BUG]: `drizzle-kit generate` 在另一个表的列类型发生变化时会默默地删除新创建的唯一索引
作者: sukalov创建于 2026年9月17日更新于 2026年9月17日
标签bug
创建 drizzle.config.ts:
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
dialect: 'turso',
schema: './schema.ts',
out: './drizzle',
});创建 schema.ts:
import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core';
export const player = sqliteTable('player', {
id: text('id').primaryKey(),
rd: integer('rd').notNull().default(350),
});生成初始迁移:
node node_modules/drizzle-kit/bin.cjs generate --name=initial仅更改 schema.ts 为:
import { real, sqliteTable, text, uniqueIndex } from 'drizzle-orm/sqlite-core';
export const player = sqliteTable('player', {
id: text('id').primaryKey(),
rd: real('rd').notNull().default(350),
});
export const ratingEvent = sqliteTable('rating_event', {
id: text('id').primaryKey(),
playerId: text('player_id').notNull().references(() => player.id),
}, (table) => [uniqueIndex('rating_event_player_unique').on(table.playerId)]);生成更改迁移:
node node_modules/drizzle-kit/bin.cjs generate --name=change未经手动修改的生成的 drizzle/0001_change.sql 为:
内容来源: drizzle-team/drizzle-orm