This repository has been archived on 2025-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
puyoskey-firefish/docs/downgrade.sql
HidemaruOwO cdd8109e81 ♻️ Refer new firefish (.gitlab-ci.yml, .gitlab/issue_templates/default.md, .gitlab/issue_templates/discussion.md, .gitlab/issue_templates/feature.md, .gitlab/issue_templates/refactor.md, .gitlab/merge_request_templates/default.md, .gitlab/merge_request_templates/release.md, Cargo.lock, Cargo.toml, Dockerfile, dev/container/docker-compose.yml, dev/docs/local-installation.md, docs/changelog.md, docs/downgrade.sql, docs/install.md, docs/notice-for-admins.md, locales/ca-ES.yml, locales/en-US.yml, locales/eo.yml, locales/ja-JP.yml, locales/ko-KR.yml, locales/zh-CN.yml, locales/zh-TW.yml, package.json, packages/backend-rs/Cargo.toml, packages/backend-rs/index.d.ts, packages/backend-rs/index.js, packages/backend-rs/package.json, packages/backend-rs/src/cache/bare.rs, packages/backend-rs/src/cache/mod.rs, packages/backend-rs/src/cache/redis.rs, packages/backend-rs/src/config/meta.rs, packages/backend-rs/src/database/mod.rs, packages/backend-rs/src/federation/activitypub/object/accept.rs, packages/backend-rs/src/federation/activitypub/object/add.rs, packages/backend-rs/src/federation/activitypub/object/emoji.rs, packages/backend-rs/src/federation/activitypub/object/flag.rs, packages/backend-rs/src/federation/activitypub/object/follow.rs, packages/backend-rs/src/federation/activitypub/object/hashtag.rs, packages/backend-rs/src/federation/activitypub/object/like.rs, packages/backend-rs/src/federation/activitypub/object/mention.rs, packages/backend-rs/src/federation/activitypub/object/mod.rs, packages/backend-rs/src/federation/activitypub/object/read.rs, packages/backend-rs/src/federation/activitypub/object/reject.rs, packages/backend-rs/src/federation/activitypub/object/remove.rs, packages/backend-rs/src/federation/activitypub/object/tombstone.rs, packages/backend-rs/src/federation/internal_actor/instance.rs, packages/backend-rs/src/federation/internal_actor/relay.rs, packages/backend-rs/src/federation/nodeinfo/fetch.rs, packages/backend-rs/src/federation/nodeinfo/generate.rs, packages/backend-rs/src/init/system_info.rs, packages/backend-rs/src/lib.rs, packages/backend-rs/src/misc/emoji/mod.rs, packages/backend-rs/src/misc/emoji/reaction.rs, packages/backend-rs/src/misc/emoji/unicode.rs, packages/backend-rs/src/misc/get_image_size.rs, packages/backend-rs/src/misc/latest_version.rs, packages/backend-rs/src/misc/mod.rs, packages/backend-rs/src/misc/note/mod.rs, packages/backend-rs/src/misc/random_icon.rs, packages/backend-rs/src/misc/should_nyaify.rs, packages/backend-rs/src/misc/system_info.rs, packages/backend-rs/src/misc/translate.rs, packages/backend-rs/src/misc/user/mod.rs, packages/backend-rs/src/model/entity/abuse_user_report.rs, packages/backend-rs/src/model/entity/access_token.rs, packages/backend-rs/src/model/entity/ad.rs, packages/backend-rs/src/model/entity/announcement.rs, packages/backend-rs/src/model/entity/announcement_read.rs, packages/backend-rs/src/model/entity/antenna.rs, packages/backend-rs/src/model/entity/app.rs, packages/backend-rs/src/model/entity/attestation_challenge.rs, packages/backend-rs/src/model/entity/auth_session.rs, packages/backend-rs/src/model/entity/blocking.rs, packages/backend-rs/src/model/entity/channel.rs, packages/backend-rs/src/model/entity/channel_following.rs, packages/backend-rs/src/model/entity/channel_note_pining.rs, packages/backend-rs/src/model/entity/clip.rs, packages/backend-rs/src/model/entity/clip_note.rs, packages/backend-rs/src/model/entity/drive_file.rs, packages/backend-rs/src/model/entity/drive_folder.rs, packages/backend-rs/src/model/entity/emoji.rs, packages/backend-rs/src/model/entity/follow_request.rs, packages/backend-rs/src/model/entity/following.rs, packages/backend-rs/src/model/entity/gallery_like.rs, packages/backend-rs/src/model/entity/gallery_post.rs, packages/backend-rs/src/model/entity/hashtag.rs, packages/backend-rs/src/model/entity/instance.rs, packages/backend-rs/src/model/entity/messaging_message.rs, packages/backend-rs/src/model/entity/meta.rs, packages/backend-rs/src/model/entity/migrations.rs, packages/backend-rs/src/model/entity/mod.rs, packages/backend-rs/src/model/entity/moderation_log.rs, packages/backend-rs/src/model/entity/muted_note.rs, packages/backend-rs/src/model/entity/muting.rs, packages/backend-rs/src/model/entity/note.rs, packages/backend-rs/src/model/entity/note_edit.rs, packages/backend-rs/src/model/entity/note_favorite.rs, packages/backend-rs/src/model/entity/note_file.rs, packages/backend-rs/src/model/entity/note_reaction.rs, packages/backend-rs/src/model/entity/note_thread_muting.rs, packages/backend-rs/src/model/entity/note_unread.rs, packages/backend-rs/src/model/entity/note_watching.rs, packages/backend-rs/src/model/entity/notification.rs, packages/backend-rs/src/model/entity/page.rs, packages/backend-rs/src/model/entity/page_like.rs, packages/backend-rs/src/model/entity/password_reset_request.rs, packages/backend-rs/src/model/entity/poll.rs, packages/backend-rs/src/model/entity/poll_vote.rs, packages/backend-rs/src/model/entity/prelude.rs, packages/backend-rs/src/model/entity/promo_note.rs, packages/backend-rs/src/model/entity/promo_read.rs, packages/backend-rs/src/model/entity/registration_ticket.rs, packages/backend-rs/src/model/entity/registry_item.rs, packages/backend-rs/src/model/entity/relay.rs, packages/backend-rs/src/model/entity/renote_muting.rs, packages/backend-rs/src/model/entity/reply_muting.rs, packages/backend-rs/src/model/entity/sea_orm_active_enums.rs, packages/backend-rs/src/model/entity/signin.rs, packages/backend-rs/src/model/entity/sw_subscription.rs, packages/backend-rs/src/model/entity/used_username.rs, packages/backend-rs/src/model/entity/user.rs, packages/backend-rs/src/model/entity/user_group.rs, packages/backend-rs/src/model/entity/user_group_invitation.rs, packages/backend-rs/src/model/entity/user_group_invite.rs, packages/backend-rs/src/model/entity/user_group_joining.rs, packages/backend-rs/src/model/entity/user_ip.rs, packages/backend-rs/src/model/entity/user_keypair.rs, packages/backend-rs/src/model/entity/user_list.rs, packages/backend-rs/src/model/entity/user_list_joining.rs, packages/backend-rs/src/model/entity/user_note_pining.rs, packages/backend-rs/src/model/entity/user_pending.rs, packages/backend-rs/src/model/entity/user_profile.rs, packages/backend-rs/src/model/entity/user_publickey.rs, packages/backend-rs/src/model/entity/user_security_key.rs, packages/backend-rs/src/model/entity/webhook.rs, packages/backend-rs/src/service/antenna/check_hit.rs, packages/backend-rs/src/service/antenna/mod.rs, packages/backend-rs/src/service/antenna/process_new_note.rs, packages/backend-rs/src/service/antenna/update.rs, packages/backend-rs/src/service/push_notification.rs, packages/backend-rs/src/service/stream.rs, packages/backend-rs/src/util/id.rs, packages/backend/package.json, packages/backend/src/boot/master.ts, packages/backend/src/migration/1644010796173-convert-hard-mutes.ts, packages/backend/src/migration/1652859567549-uniform-themecolor.ts, packages/backend/src/migration/1722346019160-set-emoji-public-url.ts, packages/backend/src/models/entities/emoji.ts, packages/backend/src/models/entities/note.ts, packages/backend/src/models/entities/user-profile.ts, packages/backend/src/models/entities/user.ts, packages/backend/src/models/repositories/renote-muting.ts, packages/backend/src/models/repositories/reply-muting.ts, packages/backend/src/models/repositories/user.ts, packages/backend/src/queue/processors/db/import-firefish-post.ts, packages/backend/src/queue/processors/db/import-masto-post.ts, packages/backend/src/remote/activitypub/kernel/like.ts, packages/backend/src/remote/activitypub/misc/contexts.ts, packages/backend/src/remote/activitypub/models/person.ts, packages/backend/src/remote/activitypub/renderer/note.ts, packages/backend/src/remote/activitypub/renderer/person.ts, packages/backend/src/remote/activitypub/request.ts, packages/backend/src/remote/activitypub/resolver.ts, packages/backend/src/remote/activitypub/type.ts, packages/backend/src/server/activitypub.ts, packages/backend/src/server/api/common/inject-featured.ts, packages/backend/src/server/api/common/read-messaging-message.ts, packages/backend/src/server/api/endpoints/admin/resolve-abuse-user-report.ts, packages/backend/src/server/api/endpoints/notes/featured.ts, packages/backend/src/server/api/mastodon/helpers/misc.ts, packages/backend/src/server/file/byte-range-readable.ts, packages/backend/src/server/index.ts, packages/backend/src/server/web/bios.css, packages/backend/src/server/web/cli.css, packages/backend/src/server/web/style.css, packages/backend/src/services/blocking/create.ts, packages/backend/src/services/fetch-instance-metadata.ts, packages/backend/src/services/following/create.ts, packages/backend/src/services/following/delete.ts, packages/backend/src/services/following/reject.ts, packages/backend/src/services/following/requests/accept.ts, packages/backend/src/services/following/requests/cancel.ts, packages/backend/src/services/following/requests/create.ts, packages/backend/src/services/i/pin.ts, packages/backend/src/services/logger.ts, packages/backend/src/services/messages/delete.ts, packages/backend/src/services/note/create.ts, packages/backend/src/services/note/delete.ts, packages/backend/src/services/note/reaction/create.ts, packages/backend/src/services/note/reaction/delete.ts, packages/client/package.json, packages/client/src/components/MkAbuseReport.vue, packages/client/src/components/MkAbuseReportWindow.vue, packages/client/src/components/MkAnnouncement.vue, packages/client/src/components/MkAutocomplete.vue, packages/client/src/components/MkAvatars.vue, packages/client/src/components/MkButton.vue, packages/client/src/components/MkChannelFollowButton.vue, packages/client/src/components/MkChannelPreview.vue, packages/client/src/components/MkChart.vue, packages/client/src/components/MkChartTooltip.vue, packages/client/src/components/MkChatPreview.vue, packages/client/src/components/MkContainer.vue, packages/client/src/components/MkCropperDialog.vue, packages/client/src/components/MkCwButton.vue, packages/client/src/components/MkDateSeparatedList.vue, packages/client/src/components/MkDialog.vue, packages/client/src/components/MkDonation.vue, packages/client/src/components/MkDrive.file.vue, packages/client/src/components/MkDrive.folder.vue, packages/client/src/components/MkDrive.navFolder.vue, packages/client/src/components/MkDrive.vue, packages/client/src/components/MkDriveFileThumbnail.vue, packages/client/src/components/MkDriveSelectDialog.vue, packages/client/src/components/MkEmojiPicker.section.vue, packages/client/src/components/MkEmojiPicker.vue, packages/client/src/components/MkEmojiPickerDialog.vue, packages/client/src/components/MkFileListForAdmin.vue, packages/client/src/components/MkFolder.vue, packages/client/src/components/MkFollowButton.vue, packages/client/src/components/MkForgotPassword.vue, packages/client/src/components/MkGalleryPostPreview.vue, packages/client/src/components/MkImageViewer.vue, packages/client/src/components/MkImgWithBlurhash.vue, packages/client/src/components/MkInfo.vue, packages/client/src/components/MkInstanceCardMini.vue, packages/client/src/components/MkInstanceSelectDialog.vue, packages/client/src/components/MkInstanceStats.vue, packages/client/src/components/MkInstanceTicker.vue, packages/client/src/components/MkKeyValue.vue, packages/client/src/components/MkLaunchPad.vue, packages/client/src/components/MkLink.vue, packages/client/src/components/MkManyAnnouncements.vue, packages/client/src/components/MkMedia.vue, packages/client/src/components/MkMediaBanner.vue, packages/client/src/components/MkMediaCaption.vue, packages/client/src/components/MkMediaList.vue, packages/client/src/components/MkMention.vue, packages/client/src/components/MkMenu.child.vue, packages/client/src/components/MkMenu.vue, packages/client/src/components/MkModPlayer.vue, packages/client/src/components/MkModal.vue, packages/client/src/components/MkModalPageWindow.vue, packages/client/src/components/MkModalWindow.vue, packages/client/src/components/MkMoved.vue, packages/client/src/components/MkNote.vue, packages/client/src/components/MkNoteDetailed.vue, packages/client/src/components/MkNotePreview.vue, packages/client/src/components/MkNoteSimple.vue, packages/client/src/components/MkNoteSub.vue, packages/client/src/components/MkNotification.vue, packages/client/src/components/MkNotificationFolded.vue, packages/client/src/components/MkNotificationToast.vue, packages/client/src/components/MkObjectView.value.vue, packages/client/src/components/MkPagePreview.vue, packages/client/src/components/MkPageWindow.vue, packages/client/src/components/MkPagination.vue, packages/client/src/components/MkPoll.vue, packages/client/src/components/MkPollEditor.vue, packages/client/src/components/MkPopupMenu.vue, packages/client/src/components/MkPostForm.vue, packages/client/src/components/MkPostFormAttaches.vue, packages/client/src/components/MkPostSearch.vue, packages/client/src/components/MkPullToRefresh.vue, packages/client/src/components/MkQrCode.vue, packages/client/src/components/MkQuoteButton.vue, packages/client/src/components/MkReactedUsers.vue, packages/client/src/components/MkReactionTooltip.vue, packages/client/src/components/MkReactionsViewer.details.vue, packages/client/src/components/MkReactionsViewer.reaction.vue, packages/client/src/components/MkReactionsViewer.vue, packages/client/src/components/MkRemoteCaution.vue, packages/client/src/components/MkRipple.vue, packages/client/src/components/MkSearchBar.vue, packages/client/src/components/MkShowMoreButton.vue, packages/client/src/components/MkSignin.vue, packages/client/src/components/MkSignup.vue, packages/client/src/components/MkSimpleTextWindow.vue, packages/client/src/components/MkSparkle.vue, packages/client/src/components/MkSuperMenu.vue, packages/client/src/components/MkTab.vue, packages/client/src/components/MkTagCloud.vue, packages/client/src/components/MkTimeline.vue, packages/client/src/components/MkToast.vue, packages/client/src/components/MkTokenGenerateWindow.vue, packages/client/src/components/MkTooltip.vue, packages/client/src/components/MkTutorialDialog.vue, packages/client/src/components/MkUpdated.vue, packages/client/src/components/MkUrlPreview.vue, packages/client/src/components/MkUrlPreviewPopup.vue, packages/client/src/components/MkUserCardMini.vue, packages/client/src/components/MkUserInfo.vue, packages/client/src/components/MkUserPreview.vue, packages/client/src/components/MkUserSelectDialog.vue, packages/client/src/components/MkUserSelectLocalDialog.vue, packages/client/src/components/MkUsersTooltip.vue, packages/client/src/components/MkVisibility.vue, packages/client/src/components/MkVisibilityPicker.vue, packages/client/src/components/MkWaitingDialog.vue, packages/client/src/components/MkWidgets.vue, packages/client/src/components/MkWindow.vue, packages/client/src/components/form/checkbox.vue, packages/client/src/components/form/folder.vue, packages/client/src/components/form/input.vue, packages/client/src/components/form/link.vue, packages/client/src/components/form/radio.vue, packages/client/src/components/form/radios.vue, packages/client/src/components/form/range.vue, packages/client/src/components/form/section.vue, packages/client/src/components/form/select.vue, packages/client/src/components/form/slot.vue, packages/client/src/components/form/suspense.vue, packages/client/src/components/form/switch.vue, packages/client/src/components/form/textarea.vue, packages/client/src/components/global/MkAd.vue, packages/client/src/components/global/MkAvatar.vue, packages/client/src/components/global/MkEmoji.vue, packages/client/src/components/global/MkError.vue, packages/client/src/components/global/MkLoading.vue, packages/client/src/components/global/MkMisskeyFlavoredMarkdown.vue, packages/client/src/components/global/MkPageHeader.vue, packages/client/src/components/global/MkSpacer.vue, packages/client/src/components/global/MkStickyContainer.vue, packages/client/src/components/global/MkUrl.vue, packages/client/src/components/note/MkNoteContent.vue, packages/client/src/components/note/MkNoteFooter.vue, packages/client/src/components/note/MkNoteFooterInfo.vue, packages/client/src/components/note/MkNoteHeader.vue, packages/client/src/components/note/MkNoteHeaderInfo.vue, packages/client/src/components/note/MkNoteMedia.vue, packages/client/src/components/note/MkNoteTranslation.vue, packages/client/src/components/note/MkRenoteBar.vue, packages/client/src/components/page/page.button.vue, packages/client/src/components/page/page.canvas.vue, packages/client/src/components/page/page.counter.vue, packages/client/src/components/page/page.note.vue, packages/client/src/components/page/page.number-input.vue, packages/client/src/components/page/page.post.vue, packages/client/src/components/page/page.section.vue, packages/client/src/components/page/page.switch.vue, packages/client/src/components/page/page.text-input.vue, packages/client/src/components/page/page.text.vue, packages/client/src/init.ts, packages/client/src/navbar.ts, packages/client/src/pages/_error_.vue, packages/client/src/pages/about-firefish.vue, packages/client/src/pages/about.emojis.vue, packages/client/src/pages/about.federation.vue, packages/client/src/pages/about.vue, packages/client/src/pages/admin-file.vue, packages/client/src/pages/admin/_header_.vue, packages/client/src/pages/admin/abuses.vue, packages/client/src/pages/admin/emoji-edit-dialog.vue, packages/client/src/pages/admin/emojis.vue, packages/client/src/pages/admin/files.vue, packages/client/src/pages/admin/index.vue, packages/client/src/pages/admin/overview.federation.vue, packages/client/src/pages/admin/overview.metrics.vue, packages/client/src/pages/admin/overview.moderators.vue, packages/client/src/pages/admin/overview.queue.vue, packages/client/src/pages/admin/overview.stats.vue, packages/client/src/pages/admin/overview.user.vue, packages/client/src/pages/admin/promotions.vue, packages/client/src/pages/admin/queue.chart.vue, packages/client/src/pages/admin/relays.vue, packages/client/src/pages/admin/settings.vue, packages/client/src/pages/admin/users.vue, packages/client/src/pages/announcements.vue, packages/client/src/pages/channel-editor.vue, packages/client/src/pages/channel.vue, packages/client/src/pages/channels.vue, packages/client/src/pages/clip.vue, packages/client/src/pages/emojis.emoji.vue, packages/client/src/pages/explore.featured.vue, packages/client/src/pages/explore.users.vue, packages/client/src/pages/explore.vue, packages/client/src/pages/follow-requests-sent.vue, packages/client/src/pages/follow-requests.vue, packages/client/src/pages/gallery/edit.vue, packages/client/src/pages/gallery/index.vue, packages/client/src/pages/gallery/post.vue, packages/client/src/pages/instance-info.vue, packages/client/src/pages/messaging/index.vue, packages/client/src/pages/messaging/messaging-room.form.vue, packages/client/src/pages/messaging/messaging-room.message.vue, packages/client/src/pages/messaging/messaging-room.vue, packages/client/src/pages/mfm-cheat-sheet.vue, packages/client/src/pages/miauth.vue, packages/client/src/pages/my-antennas/editor.vue, packages/client/src/pages/my-antennas/index.vue, packages/client/src/pages/my-clips/index.vue, packages/client/src/pages/my-groups/group.vue, packages/client/src/pages/my-groups/index.vue, packages/client/src/pages/my-lists/index.vue, packages/client/src/pages/my-lists/list.vue, packages/client/src/pages/no-graze.vue, packages/client/src/pages/note.vue, packages/client/src/pages/notifications.vue, packages/client/src/pages/oauth.vue, packages/client/src/pages/page-editor/els/page-editor.el.button.vue, packages/client/src/pages/page-editor/els/page-editor.el.if.vue, packages/client/src/pages/page-editor/els/page-editor.el.image.vue, packages/client/src/pages/page-editor/els/page-editor.el.note.vue, packages/client/src/pages/page-editor/els/page-editor.el.switch.vue, packages/client/src/pages/page-editor/els/page-editor.el.text.vue, packages/client/src/pages/page-editor/els/page-editor.el.textarea.vue, packages/client/src/pages/page-editor/page-editor.container.vue, packages/client/src/pages/page-editor/page-editor.script-block.vue, packages/client/src/pages/page-editor/page-editor.vue, packages/client/src/pages/page.vue, packages/client/src/pages/pages.vue, packages/client/src/pages/scratchpad.vue, packages/client/src/pages/search.vue, packages/client/src/pages/settings/2fa.qrdialog.vue, packages/client/src/pages/settings/2fa.vue, packages/client/src/pages/settings/accounts.vue, packages/client/src/pages/settings/apps.vue, packages/client/src/pages/settings/deck.vue, packages/client/src/pages/settings/drive.vue, packages/client/src/pages/settings/general.vue, packages/client/src/pages/settings/import-export.vue, packages/client/src/pages/settings/index.vue, packages/client/src/pages/settings/instance-mute.vue, packages/client/src/pages/settings/migration.vue, packages/client/src/pages/settings/mute-block.vue, packages/client/src/pages/settings/navbar.vue, packages/client/src/pages/settings/other.vue, packages/client/src/pages/settings/plugin.vue, packages/client/src/pages/settings/profile.vue, packages/client/src/pages/settings/reaction.vue, packages/client/src/pages/settings/security.vue, packages/client/src/pages/settings/sounds.vue, packages/client/src/pages/settings/statusbar.vue, packages/client/src/pages/settings/theme.vue, packages/client/src/pages/settings/word-mute.vue, packages/client/src/pages/share.vue, packages/client/src/pages/tag.vue, packages/client/src/pages/theme-editor.vue, packages/client/src/pages/timeline.vue, packages/client/src/pages/user-info.vue, packages/client/src/pages/user-list-timeline.vue, packages/client/src/pages/user/clips.vue, packages/client/src/pages/user/home.vue, packages/client/src/pages/user/index.photos.vue, packages/client/src/pages/user/index.timeline.vue, packages/client/src/pages/user/index.vue, packages/client/src/pages/user/media-list.vue, packages/client/src/pages/user/reactions.vue, packages/client/src/pages/welcome.entrance.a.vue, packages/client/src/pages/welcome.entrance.b.vue, packages/client/src/pages/welcome.entrance.c.vue, packages/client/src/pages/welcome.setup.vue, packages/client/src/pages/welcome.timeline.vue, packages/client/src/scripts/get-note-menu.ts, packages/client/src/scripts/get-user-menu.ts, packages/client/src/store.ts, packages/client/src/style.scss, packages/client/src/ui/_common_/common.vue, packages/client/src/ui/_common_/navbar-for-mobile.vue, packages/client/src/ui/_common_/navbar.vue, packages/client/src/ui/_common_/statusbar-federation.vue, packages/client/src/ui/_common_/statusbar-rss.vue, packages/client/src/ui/_common_/statusbar-user-list.vue, packages/client/src/ui/_common_/statusbars.vue, packages/client/src/ui/_common_/stream-indicator.vue, packages/client/src/ui/_common_/upload.vue, packages/client/src/ui/deck.vue, packages/client/src/ui/deck/antenna-column.vue, packages/client/src/ui/deck/channel-column.vue, packages/client/src/ui/deck/column.vue, packages/client/src/ui/deck/direct-column.vue, packages/client/src/ui/deck/list-column.vue, packages/client/src/ui/deck/mentions-column.vue, packages/client/src/ui/deck/notifications-column.vue, packages/client/src/ui/deck/tl-column.vue, packages/client/src/ui/deck/widgets-column.vue, packages/client/src/ui/universal.vue, packages/client/src/ui/universal.widgets.vue, packages/client/src/ui/visitor/a.vue, packages/client/src/ui/visitor/b.vue, packages/client/src/ui/visitor/header.vue, packages/client/src/ui/visitor/kanban.vue, packages/client/src/ui/zen.vue, packages/client/src/widgets/aiscript.vue, packages/client/src/widgets/calendar.vue, packages/client/src/widgets/clock.vue, packages/client/src/widgets/digital-clock.vue, packages/client/src/widgets/federation.vue, packages/client/src/widgets/instance-cloud.vue, packages/client/src/widgets/job-queue.vue, packages/client/src/widgets/memo.vue, packages/client/src/widgets/notifications.vue, packages/client/src/widgets/online-users.vue, packages/client/src/widgets/photos.vue, packages/client/src/widgets/rss-ticker.vue, packages/client/src/widgets/rss.vue, packages/client/src/widgets/server-info.vue, packages/client/src/widgets/server-metric/cpu-mem.vue, packages/client/src/widgets/server-metric/cpu.vue, packages/client/src/widgets/server-metric/disk.vue, packages/client/src/widgets/server-metric/mem.vue, packages/client/src/widgets/server-metric/pie.vue, packages/client/src/widgets/slideshow.vue, packages/client/src/widgets/timeline.vue, packages/client/src/widgets/trends.vue, packages/client/src/widgets/unix-clock.vue, packages/client/vite.config.ts, packages/firefish-js/package.json, packages/firefish-js/src/index.ts, packages/firefish-js/src/misc/langmap.ts, packages/macro-rs/macros-impl/src/lib.rs, packages/macro-rs/macros/src/lib.rs, packages/sw/package.json, packages/sw/src/scripts/notification-read.ts, packages/sw/vite.config.ts, pnpm-lock.yaml)
2024-08-23 02:17:33 +09:00

848 lines
35 KiB
PL/PgSQL

BEGIN;
DELETE FROM "migrations" WHERE name IN (
'SetEmojiPublicUrl1722346019160',
'SetAccessTokenName1722134626110',
'CreateSystemActors1720618854585',
'AddMastodonSubscriptionType1715181461692',
'SwSubscriptionAccessToken1709395223611',
'UserProfileMentions1711075007936',
'ClientCredentials1713108561474',
'TurnOffCatLanguage1720107645050',
'RefactorScheduledPosts1716804636187',
'RemoveEnumTypenameSuffix1716462794927',
'CreateScheduledNote1714728200194',
'AddBackTimezone1715351290096',
'UserprofileJsonbToArray1714270605574',
'DropUnusedUserprofileColumns1714259023878',
'AntennaJsonbToArray1714192520471',
'AddUserProfileLanguage1714888400293',
'DropUnusedIndexes1714643926317',
'AlterAkaType1714099399879',
'AddDriveFileUsage1713451569342',
'ConvertCwVarcharToText1713225866247',
'FixChatFileConstraint1712855579316',
'DropTimeZone1712425488543',
'ExpandNoteEdit1711936358554',
'markLocalFilesNsfwByDefault1709305200000',
'FixMutingIndices1710690239308',
'NoteFile1710304584214',
'RenameMetaColumns1705944717480',
'SeparateHardMuteWordsAndPatterns1706413792769',
'IndexAltTextAndCw1708872574733',
'Pgroonga1698420787202',
'ChangeDefaultConfigs1709251460718',
'AddReplyMuting1704851359889',
'FixNoteUrlIndex1709129810501',
'RemoveCharts1709047957489',
'DropUserProfileLanguage1708452631156',
'EmojiModerator1692825433698',
'RemoveNsfwDetection1705848938166',
'FirefishUrlMove1707850084123',
'RemoveNativeUtilsMigration1705877093218'
);
-- set-emoji-public-url
ALTER TABLE "emoji" ALTER COLUMN "publicUrl" SET DEFAULT '';
-- addMastodonSubscriptionType
ALTER TABLE "sw_subscription" DROP COLUMN "subscriptionTypes";
DROP TYPE "push_subscription_type";
-- sw-subscription-per-access-token
ALTER TABLE "sw_subscription" DROP CONSTRAINT "FK_98a1aa2db2a5253924f42f38767";
ALTER TABLE "sw_subscription" DROP COLUMN "appAccessTokenId";
-- user-profile-mentions
ALTER TABLE "user_profile" DROP COLUMN "mentions";
-- client-credential-support
ALTER TABLE "access_token" ALTER COLUMN "userId" SET NOT NULL;
-- turn-off-cat-language
ALTER TABLE "user" DROP COLUMN "readCatLanguage";
-- refactor-scheduled-post
CREATE TABLE "scheduled_note" (
"id" character varying(32) NOT NULL PRIMARY KEY,
"noteId" character varying(32) NOT NULL,
"userId" character varying(32) NOT NULL,
"scheduledAt" TIMESTAMP WITH TIME ZONE NOT NULL
);
COMMENT ON COLUMN "scheduled_note"."noteId" IS 'The ID of the temporarily created note that corresponds to the schedule.';
CREATE EXTENSION pgcrypto;
CREATE FUNCTION generate_scheduled_note_id(size int) RETURNS text AS $$ DECLARE
characters text := 'abcdefghijklmnopqrstuvwxyz0123456789';
bytes bytea := gen_random_bytes(size);
l int := length(characters);
i int := 0;
output text := '';
BEGIN
WHILE i < size LOOP
output := output || substr(characters, get_byte(bytes, i) % l + 1, 1);
i := i + 1;
END LOOP;
RETURN output;
END;
$$ LANGUAGE plpgsql VOLATILE;
INSERT INTO "scheduled_note" ("id", "noteId", "userId", "scheduledAt") (SELECT generate_scheduled_note_id(16), "id", "userId", "scheduledAt" FROM "note" WHERE "note"."scheduledAt" IS NOT NULL);
DROP EXTENSION pgcrypto;
DROP FUNCTION "generate_scheduled_note_id";
CREATE INDEX "IDX_noteId_ScheduledNote" ON "scheduled_note" ("noteId");
CREATE INDEX "IDX_userId_ScheduledNote" ON "scheduled_note" ("userId");
ALTER TABLE "scheduled_note" ADD FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
ALTER TABLE "scheduled_note" ADD FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
ALTER TABLE "note" DROP COLUMN "scheduledAt";
-- remove-enum-typename-suffix
ALTER TYPE "antenna_src" RENAME TO "antenna_src_enum";
ALTER TYPE "drive_file_usage_hint" RENAME TO "drive_file_usage_hint_enum";
ALTER TYPE "muted_note_reason" RENAME TO "muted_note_reason_enum";
ALTER TYPE "note_visibility" RENAME TO "note_visibility_enum";
ALTER TYPE "notification_type" RENAME TO "notification_type_enum";
ALTER TYPE "page_visibility" RENAME TO "page_visibility_enum";
ALTER TYPE "poll_note_visibility" RENAME TO "poll_notevisibility_enum";
ALTER TYPE "relay_status" RENAME TO "relay_status_enum";
ALTER TYPE "user_emoji_mod_perm" RENAME TO "user_emojimodperm_enum";
ALTER TYPE "user_profile_ffvisibility" RENAME TO "user_profile_ffvisibility_enum";
ALTER TYPE "user_profile_muting_notification_types" RENAME TO "user_profile_mutingnotificationtypes_enum";
-- create-scheduled-note
DROP TABLE "scheduled_note";
-- userprofile-jsonb-to-array
ALTER TABLE "user_profile" RENAME COLUMN "mutedInstances" TO "mutedInstances_old";
ALTER TABLE "user_profile" ADD COLUMN "mutedInstances" jsonb NOT NULL DEFAULT '[]';
UPDATE "user_profile" SET "mutedInstances" = to_jsonb("mutedInstances_old");
ALTER TABLE "user_profile" DROP COLUMN "mutedInstances_old";
ALTER TABLE "user_profile" RENAME COLUMN "mutedWords" TO "mutedWords_old";
ALTER TABLE "user_profile" ADD COLUMN "mutedWords" jsonb NOT NULL DEFAULT '[]';
CREATE TEMP TABLE "BCrsGgLCUeMMLARy" ("userId" character varying(32), "kws" jsonb NOT NULL DEFAULT '[]');
INSERT INTO "BCrsGgLCUeMMLARy" ("userId", "kws") SELECT "userId", jsonb_agg("X"."w") FROM (SELECT "userId", to_jsonb(string_to_array(unnest("mutedWords_old"), ' ')) AS "w" FROM "user_profile") AS "X" GROUP BY "userId";
UPDATE "user_profile" SET "mutedWords" = "kws" FROM "BCrsGgLCUeMMLARy" WHERE "user_profile"."userId" = "BCrsGgLCUeMMLARy"."userId";
ALTER TABLE "user_profile" DROP COLUMN "mutedWords_old";
-- drop-unused-userprofile-columns
ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}';
COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.';
ALTER TABLE "user_profile" ADD "clientData" jsonb NOT NULL DEFAULT '{}';
COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.';
-- antenna-jsonb-to-array
UPDATE "antenna" SET "instances" = '{""}' WHERE "instances" = '{}';
ALTER TABLE "antenna" RENAME COLUMN "instances" TO "instances_old";
ALTER TABLE "antenna" ADD COLUMN "instances" jsonb NOT NULL DEFAULT '[]';
UPDATE "antenna" SET "instances" = to_jsonb("instances_old");
ALTER TABLE "antenna" DROP COLUMN "instances_old";
UPDATE "antenna" SET "keywords" = '{""}' WHERE "keywords" = '{}';
ALTER TABLE "antenna" RENAME COLUMN "keywords" TO "keywords_old";
ALTER TABLE "antenna" ADD COLUMN "keywords" jsonb NOT NULL DEFAULT '[]';
CREATE TEMP TABLE "QvPNcMitBFkqqBgm" ("id" character varying(32), "kws" jsonb NOT NULL DEFAULT '[]');
INSERT INTO "QvPNcMitBFkqqBgm" ("id", "kws") SELECT "id", jsonb_agg("X"."w") FROM (SELECT "id", to_jsonb(string_to_array(unnest("keywords_old"), ' ')) AS "w" FROM "antenna") AS "X" GROUP BY "id";
UPDATE "antenna" SET "keywords" = "kws" FROM "QvPNcMitBFkqqBgm" WHERE "antenna"."id" = "QvPNcMitBFkqqBgm"."id";
ALTER TABLE "antenna" DROP COLUMN "keywords_old";
UPDATE "antenna" SET "excludeKeywords" = '{""}' WHERE "excludeKeywords" = '{}';
ALTER TABLE "antenna" RENAME COLUMN "excludeKeywords" TO "excludeKeywords_old";
ALTER TABLE "antenna" ADD COLUMN "excludeKeywords" jsonb NOT NULL DEFAULT '[]';
CREATE TEMP TABLE "MZvVSjHzYcGXmGmz" ("id" character varying(32), "kws" jsonb NOT NULL DEFAULT '[]');
INSERT INTO "MZvVSjHzYcGXmGmz" ("id", "kws") SELECT "id", jsonb_agg("X"."w") FROM (SELECT "id", to_jsonb(string_to_array(unnest("excludeKeywords_old"), ' ')) AS "w" FROM "antenna") AS "X" GROUP BY "id";
UPDATE "antenna" SET "excludeKeywords" = "kws" FROM "MZvVSjHzYcGXmGmz" WHERE "antenna"."id" = "MZvVSjHzYcGXmGmz"."id";
ALTER TABLE "antenna" DROP COLUMN "excludeKeywords_old";
-- drop-unused-indexes
CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON "note_reaction" ("createdAt");
CREATE INDEX "IDX_0610ebcfcfb4a18441a9bcdab2" ON "poll" ("userId");
CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON "note" ("attachedFileTypes");
CREATE INDEX "IDX_2710a55f826ee236ea1a62698f" ON "hashtag" ("mentionedUsersCount");
CREATE INDEX "IDX_4c02d38a976c3ae132228c6fce" ON "hashtag" ("mentionedRemoteUsersCount");
CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON "note" ("fileIds");
CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON "note" ("mentions");
CREATE INDEX "IDX_7fa20a12319c7f6dc3aed98c0a" ON "poll" ("userHost");
CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON "note" ("tags");
CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON "notification" ("createdAt");
CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON "drive_file" ("createdAt");
CREATE INDEX "IDX_d57f9030cd3af7f63ffb1c267c" ON "hashtag" ("attachedUsersCount");
CREATE INDEX "IDX_e5848eac4940934e23dbc17581" ON "drive_file" ("uri");
CREATE INDEX "IDX_fa99d777623947a5b05f394cae" ON "user" ("tags");
-- alter-aka-type
ALTER TABLE "user" RENAME COLUMN "alsoKnownAs" TO "alsoKnownAsOld";
ALTER TABLE "user" ADD COLUMN "alsoKnownAs" text;
UPDATE "user" SET "alsoKnownAs" = array_to_string("alsoKnownAsOld", ',');
COMMENT ON COLUMN "user"."alsoKnownAs" IS 'URIs the user is known as too';
ALTER TABLE "user" DROP COLUMN "alsoKnownAsOld";
-- AddDriveFileUsage
ALTER TABLE "drive_file" DROP COLUMN "usageHint";
DROP TYPE "drive_file_usage_hint_enum";
-- convert-cw-varchar-to-text
DROP INDEX "IDX_8e3bbbeb3df04d1a8105da4c8f";
ALTER TABLE "note" ALTER COLUMN "cw" TYPE character varying(512);
CREATE INDEX "IDX_8e3bbbeb3df04d1a8105da4c8f" ON "note" USING "pgroonga" ("cw" pgroonga_varchar_full_text_search_ops_v2);
-- fix-chat-file-constraint
ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_535def119223ac05ad3fa9ef64b";
ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_535def119223ac05ad3fa9ef64b" FOREIGN KEY ("fileId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
-- expand-note-edit
ALTER TABLE "note_edit" DROP COLUMN "emojis";
-- markLocalFilesNsfwByDefault
ALTER TABLE "meta" DROP COLUMN "markLocalFilesNsfwByDefault";
-- fix-muting-indices
DROP INDEX "IDX_renote_muting_createdAt";
DROP INDEX "IDX_renote_muting_muteeId";
DROP INDEX "IDX_renote_muting_muterId";
DROP INDEX "IDX_reply_muting_createdAt";
DROP INDEX "IDX_reply_muting_muteeId";
DROP INDEX "IDX_reply_muting_muterId";
CREATE INDEX "IDX_renote_muting_createdAt" ON "muting" ("createdAt");
CREATE INDEX "IDX_renote_muting_muteeId" ON "muting" ("muteeId");
CREATE INDEX "IDX_renote_muting_muterId" ON "muting" ("muterId");
-- note-file
DROP TABLE "note_file";
-- rename-meta-columns
ALTER TABLE "meta" RENAME COLUMN "tosUrl" TO "ToSUrl";
ALTER TABLE "meta" RENAME COLUMN "objectStorageUseSsl" TO "objectStorageUseSSL";
ALTER TABLE "meta" RENAME COLUMN "customMotd" TO "customMOTD";
-- separate-hard-mute-words-and-patterns
UPDATE "user_profile" SET "mutedWords" = "mutedWords" || array_to_json("mutedPatterns")::jsonb;
ALTER TABLE "user_profile" DROP "mutedPatterns";
-- index-alt-text-and-cw
DROP INDEX "IDX_f4f7b93d05958527300d79ac82";
DROP INDEX "IDX_8e3bbbeb3df04d1a8105da4c8f";
-- pgroonga
DROP INDEX "IDX_f27f5d88941e57442be75ba9c8";
DROP INDEX "IDX_065d4d8f3b5adb4a08841eae3c";
DROP INDEX "IDX_fcb770976ff8240af5799e3ffc";
DROP EXTENSION pgroonga CASCADE;
-- change-default-configs
ALTER TABLE "user_profile" ALTER COLUMN "noCrawle" SET DEFAULT false;
ALTER TABLE "user_profile" ALTER COLUMN "publicReactions" SET DEFAULT false;
ALTER TABLE "meta" ALTER COLUMN "disableRegistration" SET DEFAULT false;
-- reply-muting
DROP TABLE "reply_muting";
-- remove-charts
CREATE TABLE public.__chart__ap_request (
id integer NOT NULL,
date integer NOT NULL,
"___deliverFailed" integer DEFAULT 0 NOT NULL,
"___deliverSucceeded" integer DEFAULT 0 NOT NULL,
"___inboxReceived" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart__ap_request_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__ap_request_id_seq OWNED BY public.__chart__ap_request.id;
CREATE TABLE public.__chart__drive (
id integer NOT NULL,
date integer NOT NULL,
"___local_incCount" integer DEFAULT '0'::bigint NOT NULL,
"___local_incSize" integer DEFAULT '0'::bigint NOT NULL,
"___local_decCount" integer DEFAULT '0'::bigint NOT NULL,
"___local_decSize" integer DEFAULT '0'::bigint NOT NULL,
"___remote_incCount" integer DEFAULT '0'::bigint NOT NULL,
"___remote_incSize" integer DEFAULT '0'::bigint NOT NULL,
"___remote_decCount" integer DEFAULT '0'::bigint NOT NULL,
"___remote_decSize" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__drive_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__drive_id_seq OWNED BY public.__chart__drive.id;
CREATE TABLE public.__chart__federation (
id integer NOT NULL,
date integer NOT NULL,
"unique_temp___deliveredInstances" character varying[] DEFAULT '{}'::character varying[] NOT NULL,
"___deliveredInstances" smallint DEFAULT '0'::smallint NOT NULL,
"unique_temp___inboxInstances" character varying[] DEFAULT '{}'::character varying[] NOT NULL,
"___inboxInstances" smallint DEFAULT '0'::smallint NOT NULL,
unique_temp___stalled character varying[] DEFAULT '{}'::character varying[] NOT NULL,
___stalled smallint DEFAULT '0'::smallint NOT NULL,
___sub smallint DEFAULT '0'::smallint NOT NULL,
___pub smallint DEFAULT '0'::smallint NOT NULL,
___pubsub smallint DEFAULT '0'::smallint NOT NULL,
"___subActive" smallint DEFAULT '0'::smallint NOT NULL,
"___pubActive" smallint DEFAULT '0'::smallint NOT NULL
);
CREATE SEQUENCE public.__chart__federation_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__federation_id_seq OWNED BY public.__chart__federation.id;
CREATE TABLE public.__chart__hashtag (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_users integer DEFAULT 0 NOT NULL,
___remote_users integer DEFAULT 0 NOT NULL,
unique_temp___local_users character varying[] DEFAULT '{}'::character varying[] NOT NULL,
unique_temp___remote_users character varying[] DEFAULT '{}'::character varying[] NOT NULL
);
CREATE SEQUENCE public.__chart__hashtag_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__hashtag_id_seq OWNED BY public.__chart__hashtag.id;
CREATE TABLE public.__chart__instance (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___requests_failed smallint DEFAULT '0'::bigint NOT NULL,
___requests_succeeded smallint DEFAULT '0'::bigint NOT NULL,
___requests_received smallint DEFAULT '0'::bigint NOT NULL,
___notes_total integer DEFAULT '0'::bigint NOT NULL,
___notes_inc integer DEFAULT '0'::bigint NOT NULL,
___notes_dec integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
___users_total integer DEFAULT '0'::bigint NOT NULL,
___users_inc smallint DEFAULT '0'::bigint NOT NULL,
___users_dec smallint DEFAULT '0'::bigint NOT NULL,
___following_total integer DEFAULT '0'::bigint NOT NULL,
___following_inc smallint DEFAULT '0'::bigint NOT NULL,
___following_dec smallint DEFAULT '0'::bigint NOT NULL,
___followers_total integer DEFAULT '0'::bigint NOT NULL,
___followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___followers_dec smallint DEFAULT '0'::bigint NOT NULL,
"___drive_totalFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_incFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_incUsage" integer DEFAULT '0'::bigint NOT NULL,
"___drive_decFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_decUsage" integer DEFAULT '0'::bigint NOT NULL,
"___notes_diffs_withFile" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart__instance_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__instance_id_seq OWNED BY public.__chart__instance.id;
CREATE TABLE public.__chart__network (
id integer NOT NULL,
date integer NOT NULL,
"___incomingRequests" integer DEFAULT '0'::bigint NOT NULL,
"___outgoingRequests" integer DEFAULT '0'::bigint NOT NULL,
"___totalTime" integer DEFAULT '0'::bigint NOT NULL,
"___incomingBytes" integer DEFAULT '0'::bigint NOT NULL,
"___outgoingBytes" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__network_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__network_id_seq OWNED BY public.__chart__network.id;
CREATE TABLE public.__chart__notes (
id integer NOT NULL,
date integer NOT NULL,
___local_total integer DEFAULT '0'::bigint NOT NULL,
___local_inc integer DEFAULT '0'::bigint NOT NULL,
___local_dec integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
___remote_total integer DEFAULT '0'::bigint NOT NULL,
___remote_inc integer DEFAULT '0'::bigint NOT NULL,
___remote_dec integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
"___local_diffs_withFile" integer DEFAULT 0 NOT NULL,
"___remote_diffs_withFile" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart__notes_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__notes_id_seq OWNED BY public.__chart__notes.id;
CREATE TABLE public.__chart__per_user_drive (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
"___totalCount" integer DEFAULT '0'::bigint NOT NULL,
"___totalSize" integer DEFAULT '0'::bigint NOT NULL,
"___incCount" smallint DEFAULT '0'::bigint NOT NULL,
"___incSize" integer DEFAULT '0'::bigint NOT NULL,
"___decCount" smallint DEFAULT '0'::bigint NOT NULL,
"___decSize" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__per_user_drive_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__per_user_drive_id_seq OWNED BY public.__chart__per_user_drive.id;
CREATE TABLE public.__chart__per_user_following (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_followings_total integer DEFAULT '0'::bigint NOT NULL,
___local_followings_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_followings_dec smallint DEFAULT '0'::bigint NOT NULL,
___local_followers_total integer DEFAULT '0'::bigint NOT NULL,
___local_followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_followers_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_followings_total integer DEFAULT '0'::bigint NOT NULL,
___remote_followings_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_followings_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_followers_total integer DEFAULT '0'::bigint NOT NULL,
___remote_followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_followers_dec smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__per_user_following_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__per_user_following_id_seq OWNED BY public.__chart__per_user_following.id;
CREATE TABLE public.__chart__per_user_notes (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___total integer DEFAULT '0'::bigint NOT NULL,
___inc smallint DEFAULT '0'::bigint NOT NULL,
___dec smallint DEFAULT '0'::bigint NOT NULL,
___diffs_normal smallint DEFAULT '0'::bigint NOT NULL,
___diffs_reply smallint DEFAULT '0'::bigint NOT NULL,
___diffs_renote smallint DEFAULT '0'::bigint NOT NULL,
"___diffs_withFile" smallint DEFAULT '0'::smallint NOT NULL
);
CREATE SEQUENCE public.__chart__per_user_notes_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__per_user_notes_id_seq OWNED BY public.__chart__per_user_notes.id;
CREATE TABLE public.__chart__per_user_reaction (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_count smallint DEFAULT '0'::bigint NOT NULL,
___remote_count smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__per_user_reaction_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__per_user_reaction_id_seq OWNED BY public.__chart__per_user_reaction.id;
CREATE TABLE public.__chart__test (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128),
___foo_total bigint NOT NULL,
___foo_inc bigint NOT NULL,
___foo_dec bigint NOT NULL
);
CREATE TABLE public.__chart__test_grouped (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128),
___foo_total bigint NOT NULL,
___foo_inc bigint NOT NULL,
___foo_dec bigint NOT NULL
);
CREATE SEQUENCE public.__chart__test_grouped_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__test_grouped_id_seq OWNED BY public.__chart__test_grouped.id;
CREATE SEQUENCE public.__chart__test_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__test_id_seq OWNED BY public.__chart__test.id;
CREATE TABLE public.__chart__test_unique (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128),
___foo character varying[] DEFAULT '{}'::character varying[] NOT NULL
);
CREATE SEQUENCE public.__chart__test_unique_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__test_unique_id_seq OWNED BY public.__chart__test_unique.id;
CREATE TABLE public.__chart__users (
id integer NOT NULL,
date integer NOT NULL,
___local_total integer DEFAULT '0'::bigint NOT NULL,
___local_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_total integer DEFAULT '0'::bigint NOT NULL,
___remote_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_dec smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart__users_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart__users_id_seq OWNED BY public.__chart__users.id;
CREATE TABLE public.__chart_day__ap_request (
id integer NOT NULL,
date integer NOT NULL,
"___deliverFailed" integer DEFAULT 0 NOT NULL,
"___deliverSucceeded" integer DEFAULT 0 NOT NULL,
"___inboxReceived" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart_day__ap_request_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__ap_request_id_seq OWNED BY public.__chart_day__ap_request.id;
CREATE TABLE public.__chart_day__drive (
id integer NOT NULL,
date integer NOT NULL,
"___local_incCount" integer DEFAULT '0'::bigint NOT NULL,
"___local_incSize" integer DEFAULT '0'::bigint NOT NULL,
"___local_decCount" integer DEFAULT '0'::bigint NOT NULL,
"___local_decSize" integer DEFAULT '0'::bigint NOT NULL,
"___remote_incCount" integer DEFAULT '0'::bigint NOT NULL,
"___remote_incSize" integer DEFAULT '0'::bigint NOT NULL,
"___remote_decCount" integer DEFAULT '0'::bigint NOT NULL,
"___remote_decSize" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__drive_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__drive_id_seq OWNED BY public.__chart_day__drive.id;
CREATE TABLE public.__chart_day__federation (
id integer NOT NULL,
date integer NOT NULL,
"unique_temp___deliveredInstances" character varying[] DEFAULT '{}'::character varying[] NOT NULL,
"___deliveredInstances" smallint DEFAULT '0'::smallint NOT NULL,
"unique_temp___inboxInstances" character varying[] DEFAULT '{}'::character varying[] NOT NULL,
"___inboxInstances" smallint DEFAULT '0'::smallint NOT NULL,
unique_temp___stalled character varying[] DEFAULT '{}'::character varying[] NOT NULL,
___stalled smallint DEFAULT '0'::smallint NOT NULL,
___sub smallint DEFAULT '0'::smallint NOT NULL,
___pub smallint DEFAULT '0'::smallint NOT NULL,
___pubsub smallint DEFAULT '0'::smallint NOT NULL,
"___subActive" smallint DEFAULT '0'::smallint NOT NULL,
"___pubActive" smallint DEFAULT '0'::smallint NOT NULL
);
CREATE SEQUENCE public.__chart_day__federation_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__federation_id_seq OWNED BY public.__chart_day__federation.id;
CREATE TABLE public.__chart_day__hashtag (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_users integer DEFAULT 0 NOT NULL,
___remote_users integer DEFAULT 0 NOT NULL,
unique_temp___local_users character varying[] DEFAULT '{}'::character varying[] NOT NULL,
unique_temp___remote_users character varying[] DEFAULT '{}'::character varying[] NOT NULL
);
CREATE SEQUENCE public.__chart_day__hashtag_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__hashtag_id_seq OWNED BY public.__chart_day__hashtag.id;
CREATE TABLE public.__chart_day__instance (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___requests_failed smallint DEFAULT '0'::bigint NOT NULL,
___requests_succeeded smallint DEFAULT '0'::bigint NOT NULL,
___requests_received smallint DEFAULT '0'::bigint NOT NULL,
___notes_total integer DEFAULT '0'::bigint NOT NULL,
___notes_inc integer DEFAULT '0'::bigint NOT NULL,
___notes_dec integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___notes_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
___users_total integer DEFAULT '0'::bigint NOT NULL,
___users_inc smallint DEFAULT '0'::bigint NOT NULL,
___users_dec smallint DEFAULT '0'::bigint NOT NULL,
___following_total integer DEFAULT '0'::bigint NOT NULL,
___following_inc smallint DEFAULT '0'::bigint NOT NULL,
___following_dec smallint DEFAULT '0'::bigint NOT NULL,
___followers_total integer DEFAULT '0'::bigint NOT NULL,
___followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___followers_dec smallint DEFAULT '0'::bigint NOT NULL,
"___drive_totalFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_incFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_incUsage" integer DEFAULT '0'::bigint NOT NULL,
"___drive_decFiles" integer DEFAULT '0'::bigint NOT NULL,
"___drive_decUsage" integer DEFAULT '0'::bigint NOT NULL,
"___notes_diffs_withFile" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart_day__instance_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__instance_id_seq OWNED BY public.__chart_day__instance.id;
CREATE TABLE public.__chart_day__network (
id integer NOT NULL,
date integer NOT NULL,
"___incomingRequests" integer DEFAULT '0'::bigint NOT NULL,
"___outgoingRequests" integer DEFAULT '0'::bigint NOT NULL,
"___totalTime" integer DEFAULT '0'::bigint NOT NULL,
"___incomingBytes" integer DEFAULT '0'::bigint NOT NULL,
"___outgoingBytes" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__network_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__network_id_seq OWNED BY public.__chart_day__network.id;
CREATE TABLE public.__chart_day__notes (
id integer NOT NULL,
date integer NOT NULL,
___local_total integer DEFAULT '0'::bigint NOT NULL,
___local_inc integer DEFAULT '0'::bigint NOT NULL,
___local_dec integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___local_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
___remote_total integer DEFAULT '0'::bigint NOT NULL,
___remote_inc integer DEFAULT '0'::bigint NOT NULL,
___remote_dec integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_normal integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_reply integer DEFAULT '0'::bigint NOT NULL,
___remote_diffs_renote integer DEFAULT '0'::bigint NOT NULL,
"___local_diffs_withFile" integer DEFAULT 0 NOT NULL,
"___remote_diffs_withFile" integer DEFAULT 0 NOT NULL
);
CREATE SEQUENCE public.__chart_day__notes_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__notes_id_seq OWNED BY public.__chart_day__notes.id;
CREATE TABLE public.__chart_day__per_user_drive (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
"___totalCount" integer DEFAULT '0'::bigint NOT NULL,
"___totalSize" integer DEFAULT '0'::bigint NOT NULL,
"___incCount" smallint DEFAULT '0'::bigint NOT NULL,
"___incSize" integer DEFAULT '0'::bigint NOT NULL,
"___decCount" smallint DEFAULT '0'::bigint NOT NULL,
"___decSize" integer DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__per_user_drive_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__per_user_drive_id_seq OWNED BY public.__chart_day__per_user_drive.id;
CREATE TABLE public.__chart_day__per_user_following (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_followings_total integer DEFAULT '0'::bigint NOT NULL,
___local_followings_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_followings_dec smallint DEFAULT '0'::bigint NOT NULL,
___local_followers_total integer DEFAULT '0'::bigint NOT NULL,
___local_followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_followers_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_followings_total integer DEFAULT '0'::bigint NOT NULL,
___remote_followings_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_followings_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_followers_total integer DEFAULT '0'::bigint NOT NULL,
___remote_followers_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_followers_dec smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__per_user_following_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__per_user_following_id_seq OWNED BY public.__chart_day__per_user_following.id;
CREATE TABLE public.__chart_day__per_user_notes (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___total integer DEFAULT '0'::bigint NOT NULL,
___inc smallint DEFAULT '0'::bigint NOT NULL,
___dec smallint DEFAULT '0'::bigint NOT NULL,
___diffs_normal smallint DEFAULT '0'::bigint NOT NULL,
___diffs_reply smallint DEFAULT '0'::bigint NOT NULL,
___diffs_renote smallint DEFAULT '0'::bigint NOT NULL,
"___diffs_withFile" smallint DEFAULT '0'::smallint NOT NULL
);
CREATE SEQUENCE public.__chart_day__per_user_notes_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__per_user_notes_id_seq OWNED BY public.__chart_day__per_user_notes.id;
CREATE TABLE public.__chart_day__per_user_reaction (
id integer NOT NULL,
date integer NOT NULL,
"group" character varying(128) NOT NULL,
___local_count smallint DEFAULT '0'::bigint NOT NULL,
___remote_count smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__per_user_reaction_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__per_user_reaction_id_seq OWNED BY public.__chart_day__per_user_reaction.id;
CREATE TABLE public.__chart_day__users (
id integer NOT NULL,
date integer NOT NULL,
___local_total integer DEFAULT '0'::bigint NOT NULL,
___local_inc smallint DEFAULT '0'::bigint NOT NULL,
___local_dec smallint DEFAULT '0'::bigint NOT NULL,
___remote_total integer DEFAULT '0'::bigint NOT NULL,
___remote_inc smallint DEFAULT '0'::bigint NOT NULL,
___remote_dec smallint DEFAULT '0'::bigint NOT NULL
);
CREATE SEQUENCE public.__chart_day__users_id_seq
AS integer
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE public.__chart_day__users_id_seq OWNED BY public.__chart_day__users.id;
-- emoji-moderator
ALTER TABLE "user" DROP COLUMN "emojiModPerm";
DROP TYPE "public"."user_emojimodperm_enum";
-- remove-nsfw-detection
ALTER TABLE "user_profile" ADD "autoSensitive" boolean NOT NULL DEFAULT false;
ALTER TABLE "meta" ADD "enableSensitiveMediaDetectionForVideos" boolean NOT NULL DEFAULT false;
ALTER TABLE "meta" ADD "setSensitiveFlagAutomatically" boolean NOT NULL DEFAULT false;
CREATE TYPE "public"."meta_sensitivemediadetectionsensitivity_enum" AS ENUM('medium', 'low', 'high', 'veryLow', 'veryHigh');
ALTER TABLE "meta" ADD "sensitiveMediaDetectionSensitivity" "public"."meta_sensitivemediadetectionsensitivity_enum" NOT NULL DEFAULT 'medium';
CREATE TYPE "public"."meta_sensitivemediadetection_enum" AS ENUM('none', 'all', 'local', 'remote');
ALTER TABLE "meta" ADD "sensitiveMediaDetection" "public"."meta_sensitivemediadetection_enum" NOT NULL DEFAULT 'none';
ALTER TABLE "drive_file" ADD "maybePorn" boolean NOT NULL DEFAULT false;
ALTER TABLE "drive_file" ADD "maybeSensitive" boolean NOT NULL DEFAULT false;
COMMENT ON COLUMN "drive_file"."maybeSensitive" IS 'Whether the DriveFile is NSFW. (predict)';
-- firefish-url-move
UPDATE "meta" SET "repositoryUrl" = 'https://git.joinfirefish.org/firefish/firefish';
UPDATE "meta" SET "feedbackUrl" = 'https://git.joinfirefish.org/firefish/firefish/issues';
-- remove-native-utils-migration
CREATE TABLE "seaql_migrations" (
version character varying NOT NULL,
applied_at bigint NOT NULL
);
INSERT INTO "seaql_migrations" (version, applied_at)
VALUES
('m20230531_180824_drop_reversi', 1705876632),
('m20230627_185451_index_note_url', 1705876632),
('m20230709_000510_move_antenna_to_cache', 1705876632),
('m20230806_170616_fix_antenna_stream_ids', 1705876632),
('m20230904_013244_is_indexable', 1705876632),
('m20231002_143323_remove_integrations', 1705876632)
;
COMMIT;