PRAGMA foreign_keys=OFF;--> statement-breakpoint ALTER TABLE `user` ADD `username` text;--> statement-breakpoint UPDATE `user` SET `username` = `name` WHERE `username` IS NULL OR trim(`username`) = '';--> statement-breakpoint UPDATE `user` SET `username` = `username` || '_' || substr(`id`, 1, 6) WHERE `id` IN ( SELECT u1.`id` FROM `user` u1 JOIN `user` u2 ON lower(u1.`username`) = lower(u2.`username`) AND u1.`id` > u2.`id` );--> statement-breakpoint CREATE TABLE `__new_user` ( `id` text PRIMARY KEY NOT NULL, `name` text NOT NULL, `username` text NOT NULL, `email` text NOT NULL, `email_verified` integer DEFAULT false NOT NULL, `image` text, `is_admin` integer DEFAULT false NOT NULL, `created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL, `updated_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL );--> statement-breakpoint INSERT INTO `__new_user` ( `id`, `name`, `username`, `email`, `email_verified`, `image`, `is_admin`, `created_at`, `updated_at` ) SELECT `id`, `name`, `username`, `email`, `email_verified`, `image`, `is_admin`, `created_at`, `updated_at` FROM `user`;--> statement-breakpoint DROP TABLE `user`;--> statement-breakpoint ALTER TABLE `__new_user` RENAME TO `user`;--> statement-breakpoint CREATE UNIQUE INDEX `user_username_unique` ON `user` (`username`);--> statement-breakpoint PRAGMA foreign_keys=ON;