All checks were successful
Build Docker Image / build (push) Successful in 1m12s
- Updated user schema to include a unique username field. - Modified authentication logic to support sign-in using either email or username. - Enhanced sign-up process to require a username and validate its uniqueness. - Updated login and profile routes to reflect changes in user identification. - Adjusted frontend forms to accommodate username input alongside email.
51 lines
1.4 KiB
SQL
51 lines
1.4 KiB
SQL
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; |