Browse Source

fix(auth): correct nickname migration, add autoincrement, remove redundant index

- Add missing auth columns (email_verified, password_history, etc.) to INSERT INTO
- Add .autoincrement() to users.id primaryKey for SQLite compatibility
- Remove redundant users_email_index (unique index already provides lookup)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
npmrun 3 weeks ago
parent
commit
72267f8067
  1. 2
      packages/drizzle-pkg/lib/schema/auth.ts
  2. 6
      packages/drizzle-pkg/migrations/0002_add_auth_tables.sql

2
packages/drizzle-pkg/lib/schema/auth.ts

@ -1,7 +1,7 @@
import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
export const users = sqliteTable("users", {
id: integer().primaryKey(),
id: integer().primaryKey().autoincrement(),
username: text().notNull().unique(),
email: text(), // unique index added via migration
nickname: text(),

6
packages/drizzle-pkg/migrations/0002_add_auth_tables.sql

@ -26,17 +26,15 @@ CREATE TABLE `users_new` (
`last_login_ip` text
);
--> statement-breakpoint
INSERT INTO `users_new` (`id`, `username`, `email`, `nickname`, `password`, `avatar`, `role`, `status`, `public_slug`, `bio_markdown`, `bio_visibility`, `social_links_json`, `avatar_visibility`, `discover_visible`, `discover_location`, `discover_show_location`, `created_at`, `updated_at`) SELECT `id`, `username`, `email`, `nickname`, `password`, `avatar`, `role`, `status`, `public_slug`, `bio_markdown`, `bio_visibility`, `social_links_json`, `avatar_visibility`, `discover_visible`, `discover_location`, `discover_show_location`, `created_at`, `updated_at` FROM `users`;
INSERT INTO `users_new` (`id`, `username`, `email`, `nickname`, `password`, `avatar`, `role`, `status`, `public_slug`, `bio_markdown`, `bio_visibility`, `social_links_json`, `avatar_visibility`, `discover_visible`, `discover_location`, `discover_show_location`, `created_at`, `updated_at`, `email_verified`, `password_history`, `failed_login_attempts`, `lockout_until`, `last_login_at`, `last_login_ip`) SELECT `id`, `username`, `email`, `nickname`, `password`, `avatar`, `role`, `status`, `public_slug`, `bio_markdown`, `bio_visibility`, `social_links_json`, `avatar_visibility`, `discover_visible`, `discover_location`, `discover_show_location`, `created_at`, `updated_at`, `email_verified`, `password_history`, `failed_login_attempts`, `lockout_until`, `last_login_at`, `last_login_ip` FROM `users`;
--> statement-breakpoint
DROP TABLE `users`;
--> statement-breakpoint
ALTER TABLE `users_new` RENAME TO `users`;
--> statement-breakpoint
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);
--> statement-breakpoint
CREATE INDEX `users_email_index` ON `users` (`email`);
-- 2. 创建 user_sessions 表
-- 2. Create user_sessions table
CREATE TABLE `user_sessions` (
`id` text PRIMARY KEY NOT NULL,
`user_id` integer NOT NULL,

Loading…
Cancel
Save