summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /src/db
parentupdate deps (diff)
downloadmisskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2
misskey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip
refactoring
Resolve #7779
Diffstat (limited to 'src/db')
-rw-r--r--src/db/elasticsearch.ts56
-rw-r--r--src/db/logger.ts3
-rw-r--r--src/db/postgre.ts225
-rw-r--r--src/db/redis.ts19
4 files changed, 0 insertions, 303 deletions
diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts
deleted file mode 100644
index c99183007a..0000000000
--- a/src/db/elasticsearch.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import * as elasticsearch from '@elastic/elasticsearch';
-import config from '@/config/index';
-
-const index = {
- settings: {
- analysis: {
- analyzer: {
- ngram: {
- tokenizer: 'ngram'
- }
- }
- }
- },
- mappings: {
- properties: {
- text: {
- type: 'text',
- index: true,
- analyzer: 'ngram',
- },
- userId: {
- type: 'keyword',
- index: true,
- },
- userHost: {
- type: 'keyword',
- index: true,
- }
- }
- }
-};
-
-// Init ElasticSearch connection
-const client = config.elasticsearch ? new elasticsearch.Client({
- node: `${config.elasticsearch.ssl ? 'https://' : 'http://'}${config.elasticsearch.host}:${config.elasticsearch.port}`,
- auth: (config.elasticsearch.user && config.elasticsearch.pass) ? {
- username: config.elasticsearch.user,
- password: config.elasticsearch.pass
- } : undefined,
- pingTimeout: 30000
-}) : null;
-
-if (client) {
- client.indices.exists({
- index: config.elasticsearch.index || 'misskey_note',
- }).then(exist => {
- if (!exist.body) {
- client.indices.create({
- index: config.elasticsearch.index || 'misskey_note',
- body: index
- });
- }
- });
-}
-
-export default client;
diff --git a/src/db/logger.ts b/src/db/logger.ts
deleted file mode 100644
index 62f90555a0..0000000000
--- a/src/db/logger.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import Logger from '@/services/logger';
-
-export const dbLogger = new Logger('db');
diff --git a/src/db/postgre.ts b/src/db/postgre.ts
deleted file mode 100644
index f52c2ab722..0000000000
--- a/src/db/postgre.ts
+++ /dev/null
@@ -1,225 +0,0 @@
-// https://github.com/typeorm/typeorm/issues/2400
-const types = require('pg').types;
-types.setTypeParser(20, Number);
-
-import { createConnection, Logger, getConnection } from 'typeorm';
-import config from '@/config/index';
-import { entities as charts } from '@/services/chart/entities';
-import { dbLogger } from './logger';
-import * as highlight from 'cli-highlight';
-
-import { User } from '@/models/entities/user';
-import { DriveFile } from '@/models/entities/drive-file';
-import { DriveFolder } from '@/models/entities/drive-folder';
-import { AccessToken } from '@/models/entities/access-token';
-import { App } from '@/models/entities/app';
-import { PollVote } from '@/models/entities/poll-vote';
-import { Note } from '@/models/entities/note';
-import { NoteReaction } from '@/models/entities/note-reaction';
-import { NoteWatching } from '@/models/entities/note-watching';
-import { NoteThreadMuting } from '@/models/entities/note-thread-muting';
-import { NoteUnread } from '@/models/entities/note-unread';
-import { Notification } from '@/models/entities/notification';
-import { Meta } from '@/models/entities/meta';
-import { Following } from '@/models/entities/following';
-import { Instance } from '@/models/entities/instance';
-import { Muting } from '@/models/entities/muting';
-import { SwSubscription } from '@/models/entities/sw-subscription';
-import { Blocking } from '@/models/entities/blocking';
-import { UserList } from '@/models/entities/user-list';
-import { UserListJoining } from '@/models/entities/user-list-joining';
-import { UserGroup } from '@/models/entities/user-group';
-import { UserGroupJoining } from '@/models/entities/user-group-joining';
-import { UserGroupInvitation } from '@/models/entities/user-group-invitation';
-import { Hashtag } from '@/models/entities/hashtag';
-import { NoteFavorite } from '@/models/entities/note-favorite';
-import { AbuseUserReport } from '@/models/entities/abuse-user-report';
-import { RegistrationTicket } from '@/models/entities/registration-tickets';
-import { MessagingMessage } from '@/models/entities/messaging-message';
-import { Signin } from '@/models/entities/signin';
-import { AuthSession } from '@/models/entities/auth-session';
-import { FollowRequest } from '@/models/entities/follow-request';
-import { Emoji } from '@/models/entities/emoji';
-import { ReversiGame } from '@/models/entities/games/reversi/game';
-import { ReversiMatching } from '@/models/entities/games/reversi/matching';
-import { UserNotePining } from '@/models/entities/user-note-pining';
-import { Poll } from '@/models/entities/poll';
-import { UserKeypair } from '@/models/entities/user-keypair';
-import { UserPublickey } from '@/models/entities/user-publickey';
-import { UserProfile } from '@/models/entities/user-profile';
-import { UserSecurityKey } from '@/models/entities/user-security-key';
-import { AttestationChallenge } from '@/models/entities/attestation-challenge';
-import { Page } from '@/models/entities/page';
-import { PageLike } from '@/models/entities/page-like';
-import { GalleryPost } from '@/models/entities/gallery-post';
-import { GalleryLike } from '@/models/entities/gallery-like';
-import { ModerationLog } from '@/models/entities/moderation-log';
-import { UsedUsername } from '@/models/entities/used-username';
-import { Announcement } from '@/models/entities/announcement';
-import { AnnouncementRead } from '@/models/entities/announcement-read';
-import { Clip } from '@/models/entities/clip';
-import { ClipNote } from '@/models/entities/clip-note';
-import { Antenna } from '@/models/entities/antenna';
-import { AntennaNote } from '@/models/entities/antenna-note';
-import { PromoNote } from '@/models/entities/promo-note';
-import { PromoRead } from '@/models/entities/promo-read';
-import { envOption } from '../env';
-import { Relay } from '@/models/entities/relay';
-import { MutedNote } from '@/models/entities/muted-note';
-import { Channel } from '@/models/entities/channel';
-import { ChannelFollowing } from '@/models/entities/channel-following';
-import { ChannelNotePining } from '@/models/entities/channel-note-pining';
-import { RegistryItem } from '@/models/entities/registry-item';
-import { Ad } from '@/models/entities/ad';
-import { PasswordResetRequest } from '@/models/entities/password-reset-request';
-import { UserPending } from '@/models/entities/user-pending';
-
-const sqlLogger = dbLogger.createSubLogger('sql', 'white', false);
-
-class MyCustomLogger implements Logger {
- private highlight(sql: string) {
- return highlight.highlight(sql, {
- language: 'sql', ignoreIllegals: true,
- });
- }
-
- public logQuery(query: string, parameters?: any[]) {
- if (envOption.verbose) {
- sqlLogger.info(this.highlight(query));
- }
- }
-
- public logQueryError(error: string, query: string, parameters?: any[]) {
- sqlLogger.error(this.highlight(query));
- }
-
- public logQuerySlow(time: number, query: string, parameters?: any[]) {
- sqlLogger.warn(this.highlight(query));
- }
-
- public logSchemaBuild(message: string) {
- sqlLogger.info(message);
- }
-
- public log(message: string) {
- sqlLogger.info(message);
- }
-
- public logMigration(message: string) {
- sqlLogger.info(message);
- }
-}
-
-export const entities = [
- Announcement,
- AnnouncementRead,
- Meta,
- Instance,
- App,
- AuthSession,
- AccessToken,
- User,
- UserProfile,
- UserKeypair,
- UserPublickey,
- UserList,
- UserListJoining,
- UserGroup,
- UserGroupJoining,
- UserGroupInvitation,
- UserNotePining,
- UserSecurityKey,
- UsedUsername,
- AttestationChallenge,
- Following,
- FollowRequest,
- Muting,
- Blocking,
- Note,
- NoteFavorite,
- NoteReaction,
- NoteWatching,
- NoteThreadMuting,
- NoteUnread,
- Page,
- PageLike,
- GalleryPost,
- GalleryLike,
- DriveFile,
- DriveFolder,
- Poll,
- PollVote,
- Notification,
- Emoji,
- Hashtag,
- SwSubscription,
- AbuseUserReport,
- RegistrationTicket,
- MessagingMessage,
- Signin,
- ModerationLog,
- Clip,
- ClipNote,
- Antenna,
- AntennaNote,
- PromoNote,
- PromoRead,
- ReversiGame,
- ReversiMatching,
- Relay,
- MutedNote,
- Channel,
- ChannelFollowing,
- ChannelNotePining,
- RegistryItem,
- Ad,
- PasswordResetRequest,
- UserPending,
- ...charts as any
-];
-
-export function initDb(justBorrow = false, sync = false, forceRecreate = false) {
- if (!forceRecreate) {
- try {
- const conn = getConnection();
- return Promise.resolve(conn);
- } catch (e) {}
- }
-
- const log = process.env.NODE_ENV != 'production';
-
- return createConnection({
- type: 'postgres',
- host: config.db.host,
- port: config.db.port,
- username: config.db.user,
- password: config.db.pass,
- database: config.db.db,
- extra: config.db.extra,
- synchronize: process.env.NODE_ENV === 'test' || sync,
- dropSchema: process.env.NODE_ENV === 'test' && !justBorrow,
- cache: !config.db.disableCache ? {
- type: 'redis',
- options: {
- host: config.redis.host,
- port: config.redis.port,
- password: config.redis.pass,
- prefix: `${config.redis.prefix}:query:`,
- db: config.redis.db || 0
- }
- } : false,
- logging: log,
- logger: log ? new MyCustomLogger() : undefined,
- entities: entities
- });
-}
-
-export async function resetDb() {
- const conn = await getConnection();
- const tables = await conn.query(`SELECT relname AS "table"
- FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
- WHERE nspname NOT IN ('pg_catalog', 'information_schema')
- AND C.relkind = 'r'
- AND nspname !~ '^pg_toast';`);
- await Promise.all(tables.map(t => t.table).map(x => conn.query(`DELETE FROM "${x}" CASCADE`)));
-}
diff --git a/src/db/redis.ts b/src/db/redis.ts
deleted file mode 100644
index 7e0ee1e3ce..0000000000
--- a/src/db/redis.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as redis from 'redis';
-import config from '@/config/index';
-
-export function createConnection() {
- return redis.createClient(
- config.redis.port,
- config.redis.host,
- {
- password: config.redis.pass,
- prefix: config.redis.prefix,
- db: config.redis.db || 0
- }
- );
-}
-
-export const subsdcriber = createConnection();
-subsdcriber.subscribe(config.host);
-
-export const redisClient = createConnection();