Skip to content
This repository was archived by the owner on Oct 17, 2025. It is now read-only.

Commit ea8c60f

Browse files
committed
index 貼り
1 parent dcd39f7 commit ea8c60f

File tree

7 files changed

+45
-2
lines changed

7 files changed

+45
-2
lines changed

workspaces/schema/src/models/author.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,6 @@ export const author = sqliteTable(
2828
},
2929
(table) => ({
3030
createdAtIdx: index('created_at_idx').on(table.createdAt),
31+
imageIdIdx: index('image_id_idx').on(table.imageId),
3132
}),
3233
);

workspaces/schema/src/models/book.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,8 @@ export const book = sqliteTable(
3131
},
3232
(table) => ({
3333
createdAtIdx: index('created_at_idx').on(table.createdAt),
34+
imageIdIdx: index('image_id_idx').on(table.imageId),
35+
authorIdIdx: index('author_id_idx').on(table.authorId),
36+
releaseIdIdx: index('release_id_idx').on(table.releaseId),
3437
}),
3538
);

workspaces/schema/src/models/episode.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,8 @@ export const episode = sqliteTable(
3232
},
3333
(table) => ({
3434
bookChapIdx: index('book_chap_idx').on(table.bookId, table.chapter),
35+
authorIdIdx: index('author_id_idx').on(table.authorId),
36+
bookIdIdx: index('book_id_idx').on(table.bookId),
37+
imageIdIdx: index('image_id_idx').on(table.imageId),
3538
}),
3639
);

workspaces/schema/src/models/episodePage.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,9 @@ export const episodePage = sqliteTable(
3030
},
3131
(table) => ({
3232
episodePageIdx: index('episode_page_idx').on(table.episodeId, table.page),
33+
episodeIdIdx: index('episode_id_idx').on(table.episodeId),
34+
bookIdIdx: index('book_id_idx').on(table.bookId),
35+
authorIdIdx: index('author_id_idx').on(table.authorId),
36+
imageIdIdx: index('image_id_idx').on(table.imageId),
3337
}),
3438
);

workspaces/schema/src/models/feature.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,9 @@ export const feature = sqliteTable(
2323
.notNull()
2424
.$defaultFn(() => new Date().toISOString()),
2525
},
26-
(table) => ({ createdAtIdx: index('created_at_idx').on(table.createdAt) }),
26+
(table) => ({
27+
createdAtIdx: index('created_at_idx').on(table.createdAt),
28+
bookIdIdx: index('book_id_idx').on(table.bookId),
29+
authorIdIdx: index('author_id_idx').on(table.authorId),
30+
}),
2731
);

workspaces/schema/src/models/ranking.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,9 @@ export const ranking = sqliteTable(
2626
.notNull()
2727
.$defaultFn(() => new Date().toISOString()),
2828
},
29-
(table) => ({ rankIdx: index('rank_idx').on(table.rank) }),
29+
(table) => ({
30+
rankIdx: index('rank_idx').on(table.rank),
31+
bookIdIdx: index('book_id_idx').on(table.bookId),
32+
authorIdIdx: index('author_id_idx').on(table.authorId),
33+
}),
3034
);

workspaces/server/src/database/drizzle.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,30 @@ export function initializeDatabase() {
3232
sqlite.exec('ALTER TABLE ranking ADD COLUMN author_id TEXT NOT NULL DEFAULT "0";');
3333
sqlite.exec('UPDATE ranking SET author_id = (SELECT author_id FROM book WHERE book_id = ranking.book_id);');
3434

35+
// index
36+
sqlite.exec('CREATE INDEX IF NOT EXISTS created_at_idx ON author (created_at);');
37+
sqlite.exec('CREATE INDEX IF NOT EXISTS image_id_idx ON author (image_id);');
38+
sqlite.exec('CREATE INDEX IF NOT EXISTS created_at_idx ON book (created_at);');
39+
sqlite.exec('CREATE INDEX IF NOT EXISTS image_id_idx ON book (image_id);');
40+
sqlite.exec('CREATE INDEX IF NOT EXISTS author_id_idx ON book (author_id);');
41+
sqlite.exec('CREATE INDEX IF NOT EXISTS release_id_idx ON book (release_id);');
42+
sqlite.exec('CREATE INDEX IF NOT EXISTS book_chap_idx ON episode (book_id, chapter);');
43+
sqlite.exec('CREATE INDEX IF NOT EXISTS author_id_idx ON episode (author_id);');
44+
sqlite.exec('CREATE INDEX IF NOT EXISTS book_id_idx ON episode (book_id);');
45+
sqlite.exec('CREATE INDEX IF NOT EXISTS image_id_idx ON episode (image_id);');
46+
sqlite.exec('CREATE INDEX IF NOT EXISTS episode_page_idx ON episode_page (episode_id, page);');
47+
sqlite.exec('CREATE INDEX IF NOT EXISTS episode_id_idx ON episode_page (episode_id);');
48+
sqlite.exec('CREATE INDEX IF NOT EXISTS book_id_idx ON episode_page (book_id);');
49+
sqlite.exec('CREATE INDEX IF NOT EXISTS author_id_idx ON episode_page (author_id);');
50+
sqlite.exec('CREATE INDEX IF NOT EXISTS image_id_idx ON episode_page (image_id);');
51+
sqlite.exec('CREATE INDEX IF NOT EXISTS created_at_idx ON feature (created_at);');
52+
sqlite.exec('CREATE INDEX IF NOT EXISTS book_id_idx ON feature (book_id);');
53+
sqlite.exec('CREATE INDEX IF NOT EXISTS author_id_idx ON feature (author_id);');
54+
sqlite.exec('CREATE INDEX IF NOT EXISTS rank_idx ON ranking (rank);');
55+
sqlite.exec('CREATE INDEX IF NOT EXISTS book_id_idx ON ranking (book_id);');
56+
sqlite.exec('CREATE INDEX IF NOT EXISTS author_id_idx ON ranking (author_id);');
57+
sqlite.exec('CREATE INDEX IF NOT EXISTS email_idx ON user (email);');
58+
3559
database = drizzle(sqlite, { schema });
3660
}
3761

0 commit comments

Comments
 (0)