Merge branch 'develop' into firefish-docs/develop
This commit is contained in:
commit
95c3e007c0
279 changed files with 2099 additions and 1689 deletions
|
@ -1,5 +1,5 @@
|
|||
_lang_: Български
|
||||
cancel: Отмени
|
||||
cancel: Отказ
|
||||
noNotes: Няма публикации
|
||||
settings: Настройки
|
||||
headlineFirefish: Децентрализирана социална медийна платформа с отворен код, която
|
||||
|
@ -7,27 +7,27 @@ headlineFirefish: Децентрализирана социална медийн
|
|||
notifications: Известия
|
||||
forgotPassword: Забравена парола
|
||||
uploading: Качване...
|
||||
addInstance: Добави сървър
|
||||
favorite: Добави в отметки
|
||||
delete: Изтрий
|
||||
unpin: Откачи от профила
|
||||
copyLink: Копирай връзката
|
||||
pin: Закачи в профила
|
||||
addInstance: Добавяне на сървър
|
||||
favorite: Добавяне към отметките
|
||||
delete: Изтриване
|
||||
unpin: Откачане от профила
|
||||
copyLink: Копиране на връзката
|
||||
pin: Закачане в профила
|
||||
deleted: Изтрито
|
||||
deleteAndEditConfirm: Сигурни ли сте, че искате да изтриете тази публикация и да я
|
||||
редактирате? Ще загубите всички реакции, подсилвания и отговори към нея.
|
||||
copyUsername: Копирай потребителското име
|
||||
deleteAndEditConfirm: Сигурен ли си, че искаш да изтриеш тази публикация и да я редактираш?
|
||||
Ще загубиш всички реакции, подсилвания и отговори към нея.
|
||||
copyUsername: Копиране на потребителското име
|
||||
searchUser: Търсене на потребител
|
||||
reply: Отговори
|
||||
reply: Отговор
|
||||
showMore: Покажи още
|
||||
loadMore: Зареди още
|
||||
followRequestAccepted: Заявка за последване приета
|
||||
importAndExport: Импорт/Експорт на Данни
|
||||
import: Импортиране
|
||||
download: Свали
|
||||
download: Изтегляне
|
||||
export: Експортиране
|
||||
files: Файлове
|
||||
unblock: Отблокирай
|
||||
unblock: Отблокиране
|
||||
_sensitiveMediaDetection:
|
||||
setSensitiveFlagAutomatically: Маркиране като деликатно
|
||||
searchWith: 'Търсене: {q}'
|
||||
|
@ -35,67 +35,80 @@ smtpUser: Потребителско име
|
|||
notificationType: Тип известие
|
||||
searchResult: Резултати от търсенето
|
||||
searchByGoogle: Търсене
|
||||
markAsReadAllNotifications: Маркирай всички известия като прочетени
|
||||
markAsReadAllNotifications: Маркиране на всички известия като прочетени
|
||||
settingGuide: Препоръчителни настройки
|
||||
smtpPass: Парола
|
||||
newPasswordIs: Новата парола е "{password}"
|
||||
members: Членове
|
||||
help: Помощ
|
||||
hide: Скрий
|
||||
hide: Скриване
|
||||
group: Група
|
||||
groups: Групи
|
||||
incorrectPassword: Грешна парола.
|
||||
leaveGroup: Напусни групата
|
||||
leaveGroup: Напускане на групата
|
||||
numberOfColumn: Брой колони
|
||||
passwordLessLogin: Вписване без парола
|
||||
newPasswordRetype: Въведи отново парола
|
||||
saveAs: Запази като...
|
||||
resetPassword: Нулиране на парола
|
||||
passwordLessLogin: Вход без парола
|
||||
newPasswordRetype: Повтори новата парола
|
||||
saveAs: Запазване като...
|
||||
resetPassword: Нулиране на паролата
|
||||
saveConfirm: Запазване на промените?
|
||||
inputNewFolderName: Въведи ново име на папка
|
||||
upload: Качване
|
||||
retypedNotMatch: Въвежданията не съвпадат.
|
||||
_ago:
|
||||
weeksAgo: преди {n}с
|
||||
weeksAgo: преди {n}сед
|
||||
secondsAgo: преди {n}сек
|
||||
hoursAgo: преди {n}ч
|
||||
minutesAgo: преди {n}мин
|
||||
daysAgo: преди {n}д
|
||||
monthsAgo: преди {n}м
|
||||
monthsAgo: преди {n}мес
|
||||
yearsAgo: преди {n}г
|
||||
future: Бъдеще
|
||||
justNow: Точно сега
|
||||
justNow: Току-що
|
||||
folderName: Име на папка
|
||||
renameFile: Преименувай файл
|
||||
renameFile: Преименуване на файла
|
||||
_widgets:
|
||||
activity: Дейност
|
||||
notifications: Известия
|
||||
timeline: Инфопоток
|
||||
clock: Часовник
|
||||
trends: Актуални
|
||||
photos: Снимки
|
||||
unixClock: UNIX часовник
|
||||
calendar: Календар
|
||||
digitalClock: Дигитален часовник
|
||||
button: Бутон
|
||||
slideshow: Слайдшоу
|
||||
_userList:
|
||||
chooseList: Избор на списък
|
||||
instanceSecurity: Сигурност на сървъра
|
||||
uploadFolder: Папка по подразбиране за качвания
|
||||
instanceInfo: Информация за сървъра
|
||||
statistics: Статистика
|
||||
fileName: Име на файл
|
||||
selectFile: Избери файл
|
||||
editProfile: Редактирай профил
|
||||
selectFile: Избор на файл
|
||||
editProfile: Редактиране на профила
|
||||
instances: Сървъри
|
||||
selectUser: Избери потребител
|
||||
createNew: Създай ново
|
||||
blockThisInstance: Блокирай този сървър
|
||||
selectUser: Избор на потребител
|
||||
createNew: Създаване на ново
|
||||
blockThisInstance: Блокиране на този сървър
|
||||
_profile:
|
||||
metadata: Допълнителна информация
|
||||
username: Потребителско име
|
||||
name: Име
|
||||
description: Биография
|
||||
metadataContent: Съдържание
|
||||
addAccount: Добави акаунт
|
||||
metadataLabel: Етикет
|
||||
metadataEdit: Редактиране на допълнителната информация
|
||||
changeAvatar: Промяна на профилната снимка
|
||||
addAccount: Добавяне на акаунт
|
||||
followRequestPending: Заявка за последване в изчакване
|
||||
signinHistory: История на вписванията
|
||||
or: Или
|
||||
noUsers: Няма потребители
|
||||
notes: Публикации
|
||||
newNoteRecived: Има нови публикации
|
||||
note: Публикация
|
||||
note: Публикуване
|
||||
instanceFollowing: Последвани на сървъра
|
||||
_filters:
|
||||
followersOnly: Само последователи
|
||||
|
@ -110,35 +123,60 @@ _notification:
|
|||
follow: Нови последователи
|
||||
mention: Споменавания
|
||||
reaction: Реакции
|
||||
reply: Отговора
|
||||
all: Всички
|
||||
quote: Цитирания
|
||||
pollEnded: Приключване на анкети
|
||||
app: Известия от свързани приложения
|
||||
renote: Подсилвания
|
||||
pollVote: Гласувания в анкети
|
||||
receiveFollowRequest: Получени заявки за следване
|
||||
followRequestAccepted: Приети заявки за следване
|
||||
groupInvited: Покани в групи
|
||||
youGotReply: '{name} ти отговори'
|
||||
fileUploaded: Файлът е качен успешно
|
||||
youWereFollowed: те последва
|
||||
_actions:
|
||||
reply: Отговор
|
||||
renote: Подсилвания
|
||||
youGotQuote: '{name} те цитира'
|
||||
youGotMention: '{name} те спомена'
|
||||
youGotMessagingMessageFromUser: '{name} ти изпрати чат съобщение'
|
||||
_channel:
|
||||
notesCount: '{n} Публикации'
|
||||
nameOnly: Само име
|
||||
nameAndDescription: Име и описание
|
||||
create: Създаване на канал
|
||||
unfollow: Отследване
|
||||
noLists: Нямаш никакви списъци
|
||||
markAsReadAllUnreadNotes: Маркирай всички публикации като прочетени
|
||||
markAsReadAllTalkMessages: Маркирай всички съобщения като прочетени
|
||||
markAsReadAllUnreadNotes: Маркиране на всички публикации като прочетени
|
||||
markAsReadAllTalkMessages: Маркиране на всички съобщения като прочетени
|
||||
_time:
|
||||
second: Секунди
|
||||
hour: Часа
|
||||
day: Дни
|
||||
minute: Минути
|
||||
create: Създай
|
||||
create: Създаване
|
||||
lists: Списъци
|
||||
reportAbuseOf: Докладвай {name}
|
||||
reportAbuseOf: Докладване на {name}
|
||||
reporter: Докладчик
|
||||
abuseReports: Доклади
|
||||
logoImageUrl: URL на лого изображение
|
||||
reportAbuse: Доклад
|
||||
reportAbuse: Докладване
|
||||
latestRequestReceivedAt: Последно получена заявка
|
||||
location: Местонахождение
|
||||
keepOriginalUploading: Запази оригиналното изображение
|
||||
location: Местоположение
|
||||
keepOriginalUploading: Запазване на оригиналното изображение
|
||||
renotesCount: Брой изпратени подсилвания
|
||||
license: Лиценз
|
||||
lastUsedDate: Последно използвано на
|
||||
rename: Преименувай
|
||||
rename: Преименуване
|
||||
customEmojis: Персонализирани емоджита
|
||||
emoji: Емоджи
|
||||
_aboutFirefish:
|
||||
translation: Преведи Firefish
|
||||
source: Програмен код
|
||||
contributors: Основни сътрудници
|
||||
allContributors: Всички сътрудници
|
||||
translatedFrom: Преведено от {x}
|
||||
i18nInfo: Firefish се превежда на различни езици от доброволци. Можете да помогнете
|
||||
на адрес {link}.
|
||||
|
@ -159,32 +197,46 @@ monthX: '{month}'
|
|||
dayX: '{day}'
|
||||
registration: Регистрация
|
||||
popularUsers: Популярни потребители
|
||||
details: Детайли
|
||||
details: Подробности
|
||||
tenMinutes: 10 минути
|
||||
oneDay: Един ден
|
||||
file: Файл
|
||||
oneHour: Един час
|
||||
video: Видео
|
||||
createNewClip: Създай нова подборка
|
||||
createNewClip: Създаване на нова подборка
|
||||
clips: Подборки
|
||||
active: Активен
|
||||
menu: Меню
|
||||
itsOff: Изключено
|
||||
remindMeLater: Може би по-късно
|
||||
removed: Успешно изтриване
|
||||
deleteAllFiles: Изтрий всички файлове
|
||||
deleteAllFiles: Изтриване на всички файлове
|
||||
deletedNote: Изтрита публикация
|
||||
deleteConfirm: Потвърждавате ли изтриването?
|
||||
hasChildFilesOrFolders: Тъй като тази папка не е празна, тя не може да бъде изтрита.
|
||||
nsfw: Деликатно съдържание
|
||||
nsfw: Деликатно
|
||||
default: По подразбиране
|
||||
_theme:
|
||||
defaultValue: Стойност по подразбиране
|
||||
keys:
|
||||
mention: Споменаване
|
||||
renote: Подсили
|
||||
renote: Подсилване
|
||||
link: Връзка
|
||||
hashtag: Хаштаг
|
||||
fg: Текст
|
||||
color: Цвят
|
||||
explore: Разгледай темите
|
||||
explore: Разглеждане на темите
|
||||
description: Описание
|
||||
manage: Управление на темите
|
||||
install: Инсталиране на тема
|
||||
code: Код на темата
|
||||
builtinThemes: Вградени теми
|
||||
func: Функции
|
||||
key: Ключ
|
||||
argument: Аргумент
|
||||
installedThemes: Инсталирани теми
|
||||
constant: Константа
|
||||
addConstant: Добавяне на константа
|
||||
_pages:
|
||||
script:
|
||||
blocks:
|
||||
|
@ -200,40 +252,116 @@ _pages:
|
|||
_seedRannum:
|
||||
arg3: Максимална стойност
|
||||
arg2: Минимална стойност
|
||||
_strPick:
|
||||
arg1: Текст
|
||||
_if:
|
||||
arg3: Иначе
|
||||
arg2: Тогава
|
||||
arg1: Ако
|
||||
_randomPick:
|
||||
arg1: Списък
|
||||
fn: Функция
|
||||
_strLen:
|
||||
arg1: Текст
|
||||
_strReplace:
|
||||
arg1: Текст
|
||||
_strReverse:
|
||||
arg1: Текст
|
||||
_stringToNumber:
|
||||
arg1: Текст
|
||||
text: Текст
|
||||
_splitStrByLine:
|
||||
arg1: Текст
|
||||
_listLen:
|
||||
arg1: Списък
|
||||
_dailyRandomPick:
|
||||
arg1: Списък
|
||||
_seedRandomPick:
|
||||
arg2: Списък
|
||||
_pick:
|
||||
arg1: Списък
|
||||
categories:
|
||||
value: Стойности
|
||||
list: Списъци
|
||||
fn: Функции
|
||||
types:
|
||||
string: Текст
|
||||
array: Списък
|
||||
blocks:
|
||||
_textInput:
|
||||
default: Стойност по подразбиране
|
||||
text: Заглавие
|
||||
_switch:
|
||||
default: Стойност по подразбиране
|
||||
text: Заглавие
|
||||
_textareaInput:
|
||||
default: Стойност по подразбиране
|
||||
text: Заглавие
|
||||
_numberInput:
|
||||
default: Стойност по подразбиране
|
||||
text: Заглавие
|
||||
_radioButton:
|
||||
default: Стойност по подразбиране
|
||||
title: Заглавие
|
||||
_if:
|
||||
variable: Променлива
|
||||
_counter:
|
||||
text: Заглавие
|
||||
inc: Стъпка
|
||||
button: Бутон
|
||||
if: Ако
|
||||
image: Изображения
|
||||
text: Текст
|
||||
_post:
|
||||
text: Съдържание
|
||||
_button:
|
||||
_action:
|
||||
_dialog:
|
||||
content: Съдържание
|
||||
text: Заглавие
|
||||
created: Страницата е създадена успешно
|
||||
editPage: Редактиране на тази страница
|
||||
editThisPage: Редактиране на тази страница
|
||||
updated: Страницата е редактирана успешно
|
||||
featured: Популярни
|
||||
liked: Харесани страници
|
||||
contentBlocks: Съдържание
|
||||
contents: Съдържание
|
||||
deleted: Страницата е изтрита успешно
|
||||
newPage: Създаване на нова страница
|
||||
like: Харесване
|
||||
font: Шрифт
|
||||
title: Заглавие
|
||||
my: Моите страници
|
||||
pageSetting: Настройки на страницата
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: Известия
|
||||
mentions: Споменавания
|
||||
tl: Инфопоток
|
||||
direct: Директни съобщения
|
||||
list: Списък
|
||||
antenna: Антена
|
||||
addColumn: Добавяне на колона
|
||||
_mfm:
|
||||
mention: Споменаване
|
||||
search: Търсене
|
||||
link: Връзка
|
||||
hashtag: Хаштаг
|
||||
url: URL адрес
|
||||
font: Шрифт
|
||||
_messaging:
|
||||
groups: Групи
|
||||
dms: Лични
|
||||
apps: Приложения
|
||||
introFirefish: Добре дошли! Firefish е децентрализирана социална медийна платформа
|
||||
с отворен код, която е безплатна завинаги! 🚀
|
||||
monthAndDay: '{day}/{month}'
|
||||
search: Търсене
|
||||
searchPlaceholder: Търсене в Firefish
|
||||
searchPlaceholder: Търсене във Firefish
|
||||
username: Потребителско име
|
||||
password: Парола
|
||||
fetchingAsApObject: Извличане от федивърса
|
||||
fetchingAsApObject: Извличане от Федивселената
|
||||
ok: Добре
|
||||
gotIt: Разбрах!
|
||||
noThankYou: Не, благодаря
|
||||
|
@ -243,32 +371,32 @@ noNotifications: Няма известия
|
|||
instance: Сървър
|
||||
basicSettings: Основни Настройки
|
||||
otherSettings: Други Настройки
|
||||
openInWindow: Отвори в прозорец
|
||||
openInWindow: Отваряне в прозорец
|
||||
profile: Профил
|
||||
timeline: Инфопоток
|
||||
noAccountDescription: Този потребител все още не е написал своята биография.
|
||||
login: Впиши се
|
||||
login: Вход
|
||||
loggingIn: Вписване
|
||||
logout: Отпиши се
|
||||
signup: Регистрирай се
|
||||
logout: Изход
|
||||
signup: Регистрация
|
||||
save: Запазване
|
||||
users: Потребители
|
||||
addUser: Добави потребител
|
||||
addUser: Добавяне на потребител
|
||||
favorites: Отметки
|
||||
unfavorite: Премахни от отметки
|
||||
favorited: Добавено в отметки.
|
||||
alreadyFavorited: Вече е добавено в отметки.
|
||||
cantFavorite: Неуспешно добавяне в отметки.
|
||||
copyContent: Копирай съдържанието
|
||||
deleteAndEdit: Изтрий и редактирай
|
||||
editNote: Редактирай публикация
|
||||
unfavorite: Премахване от отметките
|
||||
favorited: Добавено към отметките.
|
||||
alreadyFavorited: Вече е добавено към отметките.
|
||||
cantFavorite: Неуспешно добавяне към отметките.
|
||||
copyContent: Копиране на съдържанието
|
||||
deleteAndEdit: Изтриване и редактиране
|
||||
editNote: Редактиране на публикацията
|
||||
edited: Редактирано на {date} {time}
|
||||
addToList: Добави в списък
|
||||
sendMessage: Изпрати съобщение
|
||||
addToList: Добавяне към списък
|
||||
sendMessage: Изпращане на съобщение
|
||||
jumpToPrevious: Премини към предишно
|
||||
newer: по-ново
|
||||
older: по-старо
|
||||
showLess: Затвори
|
||||
showLess: Покажи по-малко
|
||||
youGotNewFollower: те последва
|
||||
receiveFollowRequest: Заявка за последване получена
|
||||
mention: Споменаване
|
||||
|
@ -278,74 +406,74 @@ cw: Предупреждение за съдържание
|
|||
followers: Последователи
|
||||
following: Последвани
|
||||
followsYou: Следва те
|
||||
createList: Създай списък
|
||||
createList: Създаване на списък
|
||||
error: Грешка
|
||||
manageLists: Управление на списъци
|
||||
retry: Повторен опит
|
||||
follow: Следване
|
||||
follow: Последване
|
||||
followRequest: Заявка за последване
|
||||
followRequests: Заявки за последване
|
||||
defaultNoteVisibility: Видимост по подразбиране
|
||||
unrenote: Върни обратно подсилване
|
||||
unrenote: Отмяна на подсилването
|
||||
renoted: Подсилено.
|
||||
cantRenote: Тази публикация не може да бъде подсилена.
|
||||
renote: Подсили
|
||||
renote: Подсилване
|
||||
enterEmoji: Въведи емоджи
|
||||
sensitive: Деликатно съдържание
|
||||
add: Добави
|
||||
sensitive: Деликатно
|
||||
add: Добавяне
|
||||
pinned: Закачено в профила
|
||||
quote: Цитирай
|
||||
quote: Цитиране
|
||||
pinnedNote: Закачена публикация
|
||||
cantReRenote: Подсилване не може да бъде подсилено.
|
||||
clickToShow: Кликни за показване
|
||||
clickToShow: Щракни за показване
|
||||
you: Ти
|
||||
reaction: Реакции
|
||||
removeReaction: Премахни реакцията си
|
||||
removeReaction: Премахване на реакцията
|
||||
enterFileName: Въведи име на файл
|
||||
unmarkAsSensitive: Отмаркирай като деликатно
|
||||
markAsSensitive: Маркирай като деликатно
|
||||
block: Блокирай
|
||||
unmarkAsSensitive: Отмаркиране като деликатно
|
||||
markAsSensitive: Маркиране като деликатно
|
||||
block: Блокиране
|
||||
emojis: Емоджита
|
||||
addEmoji: Добави
|
||||
addEmoji: Добавяне
|
||||
emojiName: Име на емоджи
|
||||
emojiUrl: URL на емоджи
|
||||
emojiUrl: URL адрес на емоджи
|
||||
loginFailed: Неуспешно вписване
|
||||
flagAsCat: Котка ли си? 😺
|
||||
flagSpeakAsCat: Говори като котка
|
||||
flagSpeakAsCat: Говорене като котка
|
||||
youHaveNoLists: Нямаш никакви списъци
|
||||
selectInstance: Избери сървър
|
||||
selectInstance: Избор на сървър
|
||||
annotation: Коментари
|
||||
latestRequestSentAt: Последно изпратена заявка
|
||||
stopActivityDelivery: Спри изпращането на дейности
|
||||
stopActivityDelivery: Спиране на изпращането на дейности
|
||||
version: Версия
|
||||
clearCachedFiles: Изтрий кеш
|
||||
clearCachedFiles: Изчистване на кеша
|
||||
noInstances: Няма сървъри
|
||||
federating: Федериране
|
||||
defaultValueIs: 'По подразбиране: {value}'
|
||||
noCustomEmojis: Няма емоджи
|
||||
changePassword: Промени парола
|
||||
currentPassword: Настояща парола
|
||||
changePassword: Промяна на паролата
|
||||
currentPassword: Текуща парола
|
||||
instanceUsers: Потребители на този сървър
|
||||
security: Сигурност
|
||||
instanceFollowers: Последователи на сървъра
|
||||
newPassword: Нова парола
|
||||
more: Още!
|
||||
remove: Изтрий
|
||||
saved: Запазено
|
||||
remove: Изтриване
|
||||
saved: Запазени
|
||||
messaging: Чат
|
||||
birthday: Рожден ден
|
||||
images: Изображения
|
||||
activity: Дейност
|
||||
createFolder: Създай папка
|
||||
renameFolder: Преименувай тази папка
|
||||
selectFolders: Избери папки
|
||||
selectFolder: Избери папка
|
||||
selectFiles: Избери файлове
|
||||
addFile: Добави на файл
|
||||
createFolder: Създаване на папка
|
||||
renameFolder: Преименуване на тази папка
|
||||
selectFolders: Избор на папки
|
||||
selectFolder: Избор на папка
|
||||
selectFiles: Избор на файлове
|
||||
addFile: Добавяне на файл
|
||||
inputNewFileName: Въведи ново име на файл
|
||||
deleteFolder: Изтрий тази папка
|
||||
deleteFolder: Изтриване на тази папка
|
||||
emptyFolder: Тази папка е празна
|
||||
copyUrl: Копирай URL
|
||||
copyUrl: Копиране на URL адреса
|
||||
pages: Страници
|
||||
thisYear: Година
|
||||
thisMonth: Месец
|
||||
|
@ -363,27 +491,27 @@ moderation: Модерация
|
|||
administrator: Администратор
|
||||
lastUsed: Последно използвано
|
||||
unregister: Отрегистрация
|
||||
share: Сподели
|
||||
share: Споделяне
|
||||
notFound: Не е намерено
|
||||
inputMessageHere: Въведи съобщение тук
|
||||
createGroup: Създай група
|
||||
close: Затвори
|
||||
createGroup: Създаване на група
|
||||
close: Затваряне
|
||||
next: Следващо
|
||||
title: Заглавие
|
||||
messagingWithGroup: Групов чат
|
||||
enable: Включи
|
||||
enable: Включване
|
||||
retype: Въведи отново
|
||||
noteOf: Публикация от {user}
|
||||
quoteAttached: Цитат
|
||||
newMessageExists: Има нови съобщения
|
||||
noMessagesYet: Все още няма съобщения
|
||||
language: Език
|
||||
createAccount: Създай акаунт
|
||||
createAccount: Създаване на акаунт
|
||||
existingAccount: Съществуващ акаунт
|
||||
deleteAll: Изтрий всички
|
||||
deleteAll: Изтриване на всички
|
||||
enableAll: Включване на всички
|
||||
disableAll: Изключване на всички
|
||||
copy: Копирай
|
||||
copy: Копиране
|
||||
reporteeOrigin: Произход на докладвания
|
||||
reporterOrigin: Произход на докладчика
|
||||
clip: Подборка
|
||||
|
@ -396,7 +524,7 @@ repliedCount: Брой получени отговори
|
|||
sentReactionsCount: Брой изпратени реакции
|
||||
yes: Да
|
||||
no: Не
|
||||
alwaysMarkSensitive: Маркирай като деликатно по подразбиране
|
||||
alwaysMarkSensitive: Маркиране като деликатно по подразбиране
|
||||
noteFavoritesCount: Брой публикации с отметки
|
||||
left: Ляво
|
||||
nNotes: '{n} Публикации'
|
||||
|
@ -409,28 +537,40 @@ typingUsers: '{users} пише'
|
|||
user: Потребител
|
||||
enabled: Включено
|
||||
disabled: Изключено
|
||||
whatIsNew: Покажи промените
|
||||
translate: Преведи
|
||||
whatIsNew: Показване на промените
|
||||
translate: Превеждане
|
||||
itsOn: Включено
|
||||
oneWeek: Една седмица
|
||||
audio: Звук
|
||||
removeQuote: Премахни цитат
|
||||
removeQuote: Премахване на цитата
|
||||
_sfx:
|
||||
notification: Известия
|
||||
chat: Чат
|
||||
antenna: Антени
|
||||
note: Нова публикация
|
||||
_permissions:
|
||||
"read:favorites": Виж списъка си с отметки
|
||||
"write:favorites": Редактирай списъка си с отметки
|
||||
_visibility:
|
||||
followers: Последователи
|
||||
specified: Директна
|
||||
localOnly: Само местни
|
||||
public: Публична
|
||||
publicDescription: Публикацията ще бъде видима във всички публични инфопотоци
|
||||
home: Скрита
|
||||
localOnlyDescription: Не е видима за отдалечени потребители
|
||||
specifiedDescription: Видима само за определени потребители
|
||||
followersDescription: Видима само за последователите ти и споменатите потребители
|
||||
homeDescription: Публикуване само в началния инфопоток
|
||||
explore: Разглеждане
|
||||
theme: Теми
|
||||
wallpaper: Тапет
|
||||
setWallpaper: Задай тапет
|
||||
removeWallpaper: Премахни тапет
|
||||
setWallpaper: Задаване на тапет
|
||||
removeWallpaper: Премахване на тапета
|
||||
themeForLightMode: Тема за използване в светъл режим
|
||||
themeForDarkMode: Тема за използване в тъмен режим
|
||||
light: Светло
|
||||
dark: Тъмно
|
||||
light: Светла
|
||||
dark: Тъмна
|
||||
darkThemes: Тъмни теми
|
||||
invitations: Покани
|
||||
invitationCode: Код на поканата
|
||||
|
@ -443,9 +583,9 @@ weakPassword: Слаба парола
|
|||
strongPassword: Силна парола
|
||||
passwordMatched: Съвпада
|
||||
passwordNotMatched: Не съвпада
|
||||
signinWith: Вписване с {x}
|
||||
signinWith: Вход с {x}
|
||||
aboutX: Относно {x}
|
||||
openInNewTab: Отвори в нов раздел
|
||||
openInNewTab: Отваряне в нов раздел
|
||||
_tutorial:
|
||||
step2_1: Първо, моля, попълнете своя профил.
|
||||
step2_2: Предоставянето на известна информация за това кой сте вие ще улесни другите
|
||||
|
@ -455,8 +595,24 @@ _tutorial:
|
|||
step5_1: Инфопотоци, инфопотоци навсякъде!
|
||||
step3_1: Сега е време да последвате няколко хора!
|
||||
step1_2: Нека да ви настроим. Ще бъдете готови за нула време!
|
||||
openImageInNewTab: Отваряй изображенията в нов раздел
|
||||
showOnRemote: Отвори оригиналната страница
|
||||
step5_3: Началният {icon} инфопоток е мястото, където можеш да видиш публикации
|
||||
от акаунтите, които следваш.
|
||||
step6_1: И така, какво е това място?
|
||||
step5_7: Глобалният {icon} инфопоток е мястото, където можете да видиш публикации
|
||||
от всеки друг свързан сървър.
|
||||
step4_2: За първата си публикация някои хора обичат да правят публикация {introduction}
|
||||
или просто „Здравей свят!“
|
||||
step5_2: Вашият сървър има активирани {timelines} различни инфопотоци.
|
||||
step5_4: Местният {icon} инфопоток е мястото, където можеш да видиш публикации от
|
||||
всички останали на този сървър.
|
||||
step5_5: Социалният {icon} инфопоток е комбинация от Началния и Местния инфопоток.
|
||||
step5_6: Препоръчаният {icon} инфопоток е мястото, където можеш да видиш публикации
|
||||
от сървъри, препоръчани от администраторите.
|
||||
step6_4: Сега отидете, изследвайте и се забавлявайте!
|
||||
step6_3: Всеки сървър работи по различни начини и не всички сървъри работят с Firefish.
|
||||
Този обаче го прави! Малко е сложно, но ще разберете за нула време.
|
||||
openImageInNewTab: Отваряне на изображенията в нов раздел
|
||||
showOnRemote: Отваряне на първообразната страница
|
||||
lightThemes: Светли теми
|
||||
syncDeviceDarkMode: Синхронизиране на тъмния режим с настройките на устройството
|
||||
text: Текст
|
||||
|
@ -464,14 +620,241 @@ normalPassword: Средна парола
|
|||
usernameInvalidFormat: Можете да използвате главни и малки букви, цифри и долни черти.
|
||||
signinFailed: Неуспешно вписване. Въведените потребителско име или парола са неправилни.
|
||||
signinRequired: Моля, регистрирайте се или се впишете, преди да продължите
|
||||
start: Започни
|
||||
confirm: Потвърди
|
||||
start: Започване
|
||||
confirm: Потвърждаване
|
||||
failedToUpload: Неуспешно качване
|
||||
_preferencesBackups:
|
||||
cannotSave: Неуспешно запазване
|
||||
cannotLoad: Неуспешно зареждане
|
||||
saveNew: Запазване на ново резервно копие
|
||||
inputName: Моля, въведи име за това резервно копие
|
||||
deleteConfirm: Изтриване на резервното копие {name}?
|
||||
loadFile: Зареждане от файл
|
||||
save: Запазване на промените
|
||||
apply: Прилагане към това устройство
|
||||
list: Създадени резервни копия
|
||||
saveConfirm: Запазване на резервното копие като {name}?
|
||||
createdAt: 'Създадено на: {date} {time}'
|
||||
updatedAt: 'Обновено на: {date} {time}'
|
||||
editWidgetsExit: Готово
|
||||
done: Готово
|
||||
emailRequiredForSignup: Изискване за адрес на е-поща за регистриране
|
||||
emailRequiredForSignup: Изискване на адрес на ел. поща за регистриране
|
||||
preview: Преглед
|
||||
privacy: Поверителност
|
||||
about: Относно
|
||||
aboutFirefish: Относно Firefish
|
||||
author: Автор
|
||||
software: Софтуер
|
||||
category: Категория
|
||||
renotes: Подсилвания
|
||||
quotes: Цитирания
|
||||
reactions: Реакции
|
||||
attachCancel: Премахване на прикачен файл
|
||||
mute: Заглушаване
|
||||
unmute: Отмяна на заглушаването
|
||||
selectAntenna: Избор на антена
|
||||
selectList: Избор на списък
|
||||
editWidgets: Редактиране на джаджите
|
||||
flagAsCatDescription: Ще получиш котешки уши и ще говориш като котка!
|
||||
host: Хост
|
||||
perHour: За час
|
||||
perDay: За ден
|
||||
operations: Операции
|
||||
mutedUsers: Заглушени потребители
|
||||
imageUrl: URL адрес на изображение
|
||||
announcements: Оповестявания
|
||||
removeAreYouSure: Сигурен ли си, че искаш да премахнеш "{x}"?
|
||||
fromUrl: От URL адрес
|
||||
manageGroups: Управление на групи
|
||||
nUsersRead: прочетено от {n}
|
||||
home: Начало
|
||||
registeredDate: Присъединяване
|
||||
avatar: Профилна снимка
|
||||
watch: Наблюдаване
|
||||
antennas: Антени
|
||||
manageAntennas: Управление на антени
|
||||
popularTags: Популярни тагове
|
||||
cacheClear: Изчистване на кеша
|
||||
groupName: Име на групата
|
||||
local: Местни
|
||||
total: Общо
|
||||
remote: Отдалечени
|
||||
accountSettings: Настройки на акаунта
|
||||
showInPage: Показване в страницата
|
||||
install: Инсталиране
|
||||
uninstall: Деинсталиране
|
||||
invisibleNote: Невидима публикация
|
||||
poll: Анкета
|
||||
useCw: Скриване на съдържание
|
||||
smtpHost: Хост
|
||||
preferencesBackups: Резервни копия
|
||||
emailServer: Ел. пощенски сървър
|
||||
overview: Обзор
|
||||
reloadToApplySetting: Тази настройка ще се приложи само след презареждане на страницата.
|
||||
Презареждане сега?
|
||||
markAllAsRead: Маркиране на всички като прочетени
|
||||
addDescription: Добавяне на описание
|
||||
userInfo: Информация за потребителя
|
||||
switchAccount: Превключване на акаунт
|
||||
gallery: Галерия
|
||||
priority: Приоритет
|
||||
unread: Непрочетени
|
||||
filter: Филтриране
|
||||
manageAccounts: Управление на акаунти
|
||||
deleteAccount: Изтриване на акаунта
|
||||
fast: Бърза
|
||||
remoteOnly: Само отдалечени
|
||||
move: Преместване
|
||||
navbar: Навигационна лента
|
||||
moveTo: Преместване на текущия акаунт в нов акаунт
|
||||
moveAccount: Преместване на акаунта!
|
||||
_gallery:
|
||||
my: Моята галерия
|
||||
like: Харесване
|
||||
liked: Харесани публикации
|
||||
_registry:
|
||||
keys: Ключове
|
||||
key: Ключ
|
||||
createKey: Създаване на ключ
|
||||
domain: Домейн
|
||||
_weekday:
|
||||
tuesday: Вторник
|
||||
wednesday: Сряда
|
||||
thursday: Четвъртък
|
||||
saturday: Събота
|
||||
monday: Понеделник
|
||||
friday: Петък
|
||||
sunday: Неделя
|
||||
_antennaSources:
|
||||
users: Публикации от конкретни потребители
|
||||
userGroup: Публикации от потребители в конкретна група
|
||||
instances: Публикации от всички потребители на сървър
|
||||
all: Всички публикации
|
||||
homeTimeline: Публикации от последвани потребители
|
||||
userList: Публикации от конкретен списък с потребители
|
||||
_poll:
|
||||
choiceN: Избор {n}
|
||||
infinite: Никога
|
||||
totalVotes: '{n} гласа общо'
|
||||
votesCount: '{n} гласа'
|
||||
expiration: Приключване на анкетата
|
||||
_timelines:
|
||||
local: Местни
|
||||
home: Начало
|
||||
global: Глобални
|
||||
recommended: Препоръчани
|
||||
social: Социални
|
||||
_feeds:
|
||||
copyFeed: Копиране на емисия
|
||||
rss: RSS
|
||||
atom: Atom
|
||||
jsonFeed: JSON feed
|
||||
general: Общи
|
||||
metadata: Метаданни
|
||||
disk: Диск
|
||||
featured: Представени
|
||||
yearsOld: на {age} години
|
||||
reload: Опресняване
|
||||
invites: Покани
|
||||
blockedInstances: Блокирани сървъри
|
||||
inMb: В мегабайти
|
||||
unfollowConfirm: Сигурен ли си, че искаш да спреш да следваш {name}?
|
||||
somethingHappened: Възникна грешка
|
||||
pageLoadError: Възникна грешка при зареждането на страницата.
|
||||
enterListName: Въведи име за списъка
|
||||
shareWithNote: Споделяне чрез публикация
|
||||
flagAsBot: Маркиране на този акаунт като автоматизиран
|
||||
selectChannel: Избор на канал
|
||||
all: Всичко
|
||||
muteAndBlock: Заглушени и блокирани
|
||||
blockedUsers: Блокирани потребители
|
||||
noteDeleteConfirm: Сигурен ли си, че искаш да изтриеш тази публикация?
|
||||
hiddenTags: Скрити хаштагове
|
||||
deleteAreYouSure: Сигурен ли си, че искаш да изтриеш "{x}"?
|
||||
startMessaging: Започване на нов чат
|
||||
uploadFromUrl: Качване от URL адрес
|
||||
instanceName: Име на сървъра
|
||||
instanceDescription: Описание на сървъра
|
||||
accept: Приемане
|
||||
enableLocalTimeline: Включване на местния инфопоток
|
||||
enableGlobalTimeline: Включване на глобалния инфопоток
|
||||
findOtherInstance: Намиране на друг сървър
|
||||
removeMember: Премахване на член
|
||||
isAdmin: Администратор
|
||||
isModerator: Модератор
|
||||
_menuDisplay:
|
||||
hide: Скриване
|
||||
_exportOrImport:
|
||||
allNotes: Всички публикации
|
||||
exploreFediverse: Разглеждане на Федивселената
|
||||
recentlyUpdatedUsers: Последно активни потребители
|
||||
uiLanguage: Език на потребителския интерфейс
|
||||
dashboard: Табло
|
||||
tags: Тагове
|
||||
youHaveNoGroups: Нямаш групи
|
||||
accessibility: Достъпност
|
||||
email: Ел. поща
|
||||
emailAddress: Адрес на ел. поща
|
||||
addItem: Добавяне на елемент
|
||||
visibility: Видимост
|
||||
description: Описание
|
||||
_relayStatus:
|
||||
accepted: Прието
|
||||
other: Други
|
||||
channel: Канали
|
||||
accountInfo: Информация за акаунта
|
||||
send: Изпращане
|
||||
clearCache: Изчистване на кеша
|
||||
closeAccount: Затваряне на акаунта
|
||||
onlineUsersCount: '{n} потребители на линия'
|
||||
nUsers: '{n} Потребители'
|
||||
developer: Разработчик
|
||||
popularPosts: Популярни страници
|
||||
info: Относно
|
||||
recentPosts: Последни страници
|
||||
offline: Извън линия
|
||||
onlineStatus: Онлайн състояние
|
||||
online: На линия
|
||||
goBack: Назад
|
||||
editCode: Редактиране на кода
|
||||
publish: Публикувай
|
||||
breakFollow: Премахване на последовател
|
||||
learnMore: Научи повече
|
||||
hashtags: Хаштагове
|
||||
document: Документация
|
||||
accounts: Акаунти
|
||||
smartphone: Смартфон
|
||||
isBot: Този акаунт е автоматизиран
|
||||
size: Размер
|
||||
tablet: Таблет
|
||||
numberOfPageCache: Брой кеширани страници
|
||||
localOnly: Само местни
|
||||
beta: Бета
|
||||
slow: Бавна
|
||||
speed: Скорост
|
||||
account: Акаунт
|
||||
migration: Прехвърляне
|
||||
moveToLabel: 'Акаунт, към който се местиш:'
|
||||
withFiles: С прикачени файлове
|
||||
renoteUnmute: Отмяна на заглушаването на подсилванията
|
||||
selectWidget: Избор на джаджа
|
||||
remoteUserCaution: Информацията от отдалечени потребители може да е непълна.
|
||||
attachFile: Прикачване на файлове
|
||||
unwatch: Спиране на наблюдаването
|
||||
invite: Поканване
|
||||
_wordMute:
|
||||
mutedNotes: Заглушени публикации
|
||||
_postForm:
|
||||
_placeholders:
|
||||
b: Какво се случва около теб?
|
||||
recentlyDiscoveredUsers: Новооткрити потребители
|
||||
recentlyRegisteredUsers: Новоприсъединени потребители
|
||||
inviteToGroup: Поканване в група
|
||||
nothing: Няма нищо за гледане тук
|
||||
chooseEmoji: Избор на емоджи
|
||||
switchUi: Оформление
|
||||
previewNoteText: Показване на преглед
|
||||
apply: Прилагане
|
||||
selectAccount: Избор на акаунт
|
||||
muteThread: Заглушаване на нишката
|
||||
ffVisibility: Видимост на Последвани/Последователи
|
||||
|
|
|
@ -1002,8 +1002,8 @@ enableEmojiReactions: Activa reaccions amb emojis
|
|||
blockThisInstance: Bloqueja aquest servidor
|
||||
registration: Registra't
|
||||
showEmojisInReactionNotifications: Mostrar els emojis a les notificacions de les reaccions
|
||||
renoteMute: Silencia els impulsos
|
||||
renoteUnmute: Treu el silenci als impulsos
|
||||
renoteMute: Silencia els impulsos a les línies de temps
|
||||
renoteUnmute: Treu el silenci als impulsos a les línies de temps
|
||||
cacheRemoteFiles: Desa fitxers remots a la memòria cau
|
||||
federation: Federació
|
||||
registeredAt: Registrat a
|
||||
|
@ -2239,3 +2239,8 @@ enableTimelineStreaming: Actualitza les línies de temps automàticament
|
|||
enablePullToRefresh: Activa "Baixa per actualitzar"
|
||||
pullDownToReload: Baixa per actualitzar
|
||||
pullToRefreshThreshold: Distancia de baixada per actualitzar
|
||||
searchWords: Paraules / ID o adreça a URL a buscar
|
||||
noSentFollowRequests: No tens cap sol·licitud de seguiment enviada
|
||||
sentFollowRequests: Enviar sol·licituds de seguiment
|
||||
replyMute: Silencia les respostes a les línies de temps
|
||||
replyUnmute: Treu el silencia de les respostes a les línies de temps
|
||||
|
|
1
locales/hu.yml
Normal file
1
locales/hu.yml
Normal file
|
@ -0,0 +1 @@
|
|||
_lang_: "Magyar nyelv"
|
|
@ -2021,8 +2021,8 @@ requireAdminForView: Devi avere un account amministratore per vedere questo cont
|
|||
jumpToPrevious: Vai al precedente
|
||||
flagShowTimelineReplies: Mostra le risposte nella timeline
|
||||
cw: Content warning
|
||||
renoteMute: Silenzia i boost
|
||||
renoteUnmute: Non silenziare i boost
|
||||
renoteMute: Silenzia i boost nelle timeline
|
||||
renoteUnmute: Non silenziare i boost nelle timeline
|
||||
enableEmojiReactions: Abilita le reazioni con emoji
|
||||
preferencesBackups: Backup delle preferenze
|
||||
adminCustomCssWarn: Questa impostazione dovrebbe essere usata solo se ne comprendi
|
||||
|
@ -2173,8 +2173,9 @@ showPreviewByDefault: Mostra sempre l'anteprima del messaggio
|
|||
replaceWidgetsButtonWithReloadButton: Sostituisci il bottone dei widget con quello
|
||||
di reload
|
||||
squareCatAvatars: Mostra avatar quadrati per gli account di gatti
|
||||
searchEngine: Motore della barra di ricerca MFM
|
||||
hideFollowButtons: Nascondi i bottoni di follow se in posizioni cliccabili per errore
|
||||
searchEngine: Motore di ricerca della barra MFM
|
||||
hideFollowButtons: Nascondi i bottoni di follow se sono in una posizione cliccabile
|
||||
per errore
|
||||
preventMisclick: Protezione dai click accidentali
|
||||
forMobile: Mobile
|
||||
replaceChatButtonWithAccountButton: Sostituisci il bottone chat con quello di cambio
|
||||
|
@ -2197,3 +2198,17 @@ emojiModPermDescription: "Aggiungi: Permette all'utente di aggiungere emoji pers
|
|||
in più permette di rimuovere le emoji personalizzate."
|
||||
makePrivateConfirm: Questa operazione invierà ai server remoti un richiesta di rimozione
|
||||
e cambierà la visibilità a "Privato". Confermi?
|
||||
sentFollowRequests: Richieste di follow inviate
|
||||
searchWords: Parole da cercare / ID o URL da mostrare
|
||||
enablePullToRefresh: Abilita il "Trascina in basso per aggiornare"
|
||||
pullToRefreshThreshold: Distanza di trascinamento per ricaricare
|
||||
pullDownToReload: Trascina in basso per ricaricare
|
||||
releaseToReload: Rilascia per ricaricare
|
||||
reloading: Ricaricamento
|
||||
enableTimelineStreaming: Aggiorna le timeline in automatico
|
||||
noSentFollowRequests: Non hai inviato richieste di follow
|
||||
replyMute: Silenzia le risposte nelle timeline
|
||||
replyUnmute: Non silenziare le risposte nelle timeline
|
||||
useCdn: Carica gli asset da CDN
|
||||
useCdnDescription: Carica alcuni asset statici come Twemoji dal CDN JSDelivr invece
|
||||
che da questo server Firefish.
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
"start:container": "pnpm run gulp && pnpm run migrate && pnpm run start",
|
||||
"start:test": "pnpm --filter backend run start:test",
|
||||
"init": "pnpm run migrate",
|
||||
"migrate": "pnpm --filter backend run migrate",
|
||||
"revertmigration": "pnpm --filter backend run revertmigration",
|
||||
"migrate": "pnpm --filter backend run migration:run",
|
||||
"revertmigration": "pnpm --filter backend run migration:revert",
|
||||
"gulp": "gulp build",
|
||||
"watch": "pnpm run dev",
|
||||
"dev": "pnpm node ./scripts/dev.mjs",
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
export class PinnedUsers1557476068003 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
export class UserListJoining1558266512381 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
export class PasswordLessLogin1562422242907 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
export class PageTitleHideOption1562448332510 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
export class room1565634203341 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
export class CustomEmojiCategory1571220798684 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "emoji" ADD "category" character varying(128)`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "emoji" DROP COLUMN "category"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class TalkFederationId1576269851876 {
|
||||
constructor() {
|
||||
this.name = "TalkFederationId1576269851876";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "messaging_message" DROP COLUMN "uri"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class ProxyRemoteFiles1576869585998 {
|
||||
constructor() {
|
||||
this.name = "ProxyRemoteFiles1576869585998";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
export class v12131580543501339 {
|
||||
constructor() {
|
||||
this.name = "v12131580543501339";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class driveUserFolderIdIndex1581708415836 {
|
||||
constructor() {
|
||||
this.name = "driveUserFolderIdIndex1581708415836";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class antennaExclude1582210532752 {
|
||||
constructor() {
|
||||
this.name = "antennaExclude1582210532752";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
export class apUrl1585772678853 {
|
||||
constructor() {
|
||||
this.name = "apUrl1585772678853";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "note" ADD "url" character varying(512)`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class AddObjectStorageUseProxy1586624197029 {
|
||||
constructor() {
|
||||
this.name = "AddObjectStorageUseProxy1586624197029";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
export class pageAiScript1586708940386 {
|
||||
constructor() {
|
||||
this.name = "pageAiScript1586708940386";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" DROP COLUMN "script"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class blurhash1595075960584 {
|
||||
constructor() {
|
||||
this.name = "blurhash1595075960584";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class instanceIconUrl1595676934834 {
|
||||
constructor() {
|
||||
this.name = "instanceIconUrl1595676934834";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class channel21596786425167 {
|
||||
constructor() {
|
||||
this.name = "channel21596786425167";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class objectStorageSetPublicRead1597230137744 {
|
||||
constructor() {
|
||||
this.name = "objectStorageSetPublicRead1597230137744";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class addSensitiveIndex1597385880794 {
|
||||
constructor() {
|
||||
this.name = "addSensitiveIndex1597385880794";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class instanceThemeColor1603776877564 {
|
||||
constructor() {
|
||||
this.name = "instanceThemeColor1603776877564";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class instanceFavicon1603781553011 {
|
||||
constructor() {
|
||||
this.name = "instanceFavicon1603781553011";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class deleteAutoWatch1604821689616 {
|
||||
constructor() {
|
||||
this.name = "deleteAutoWatch1604821689616";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class clipDescription1605408848373 {
|
||||
constructor() {
|
||||
this.name = "clipDescription1605408848373";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class instancePinnedClip1607151207216 {
|
||||
constructor() {
|
||||
this.name = "instancePinnedClip1607151207216";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class registry31610283021566 {
|
||||
constructor() {
|
||||
this.name = "registry31610283021566";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "registry_item" ALTER COLUMN "value" DROP NOT NULL`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "registry_item" ALTER COLUMN "value" SET NOT NULL`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class objectStorageS3ForcePathStyle1611547387175 {
|
||||
constructor() {
|
||||
this.name = "objectStorageS3ForcePathStyle1611547387175";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "objectStorageS3ForcePathStyle" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "objectStorageS3ForcePathStyle"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class announcementEmail1612619156584 {
|
||||
constructor() {
|
||||
this.name = "announcementEmail1612619156584";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class userLang1613181457597 {
|
||||
constructor() {
|
||||
this.name = "userLang1613181457597";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "lang" character varying(32)`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class userHideOnlineStatus1618639857000 {
|
||||
constructor() {
|
||||
this.name = "userHideOnlineStatus1618639857000";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user" ADD "hideOnlineStatus" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user" DROP COLUMN "hideOnlineStatus"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class ad21620364649428 {
|
||||
constructor() {
|
||||
this.name = "ad21620364649428";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class deeplIntegration1629024377804 {
|
||||
constructor() {
|
||||
this.name = "deeplIntegration1629024377804";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class fixChannelUserId1629288472000 {
|
||||
constructor() {
|
||||
this.name = "fixChannelUserId1629288472000";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class deeplIntegration21629778475000 {
|
||||
constructor() {
|
||||
this.name = "deeplIntegration21629778475000";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class emailRequiredForSignup1633068642000 {
|
||||
constructor() {
|
||||
this.name = "emailRequiredForSignup1633068642000";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class userPublicReactions1634486652000 {
|
||||
constructor() {
|
||||
this.name = "userPublicReactions1634486652000";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
export class deleteLog1634902659689 {
|
||||
constructor() {
|
||||
this.name = "deleteLog1634902659689";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`DROP TABLE "log"`);
|
||||
}
|
||||
async down(queryRunner) {}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class removeViaMobile1636697408073 {
|
||||
name = "removeViaMobile1636697408073";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "viaMobile"`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "note" ADD "viaMobile" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class forwardedReport1637320813000 {
|
||||
name = "forwardedReport1637320813000";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "abuse_user_report" ADD "forwarded" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "abuse_user_report" DROP COLUMN "forwarded"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class driveFileWebpublicType1642613870898 {
|
||||
name = "driveFileWebpublicType1642613870898";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "drive_file" ADD "webpublicType" character varying(128)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "drive_file" DROP COLUMN "webpublicType"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class instanceThemeColor1644395759931 {
|
||||
name = "instanceThemeColor1644395759931";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "themeColor" character varying(512)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "themeColor"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class removeMaxNoteTextLength1645340161439 {
|
||||
name = "removeMaxNoteTextLength1645340161439";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "maxNoteTextLength"`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "maxNoteTextLength" integer NOT NULL DEFAULT '500'`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class userModerationNote1656772790599 {
|
||||
name = "userModerationNote1656772790599";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "moderationNote" character varying(8192) NOT NULL DEFAULT ''`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "moderationNote"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class activeEmailValidation1657346559800 {
|
||||
name = "activeEmailValidation1657346559800";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "enableActiveEmailValidation" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "enableActiveEmailValidation"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
export class CustomMOTD1658939464003 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "customMOTD" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "customMOTD"`);
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
export class CustomSplashIcons1658941974648 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "customSplashIcons" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "customSplashIcons"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class GuestTimeline1660068273737 {
|
||||
name = "GuestTimeline1660068273737";
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "enableGuestTimeline" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "enableGuestTimeline"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
export class Page1668828368510 {
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" ADD "isPublic" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "isPublic"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class FixFirefishAgain1668831378728 {
|
||||
name = "FixFirefishAgain1668831378728";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`UPDATE "meta" SET "useStarForReactionFallback" = TRUE`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`UPDATE "meta" SET "useStarForReactionFallback" = FALSE`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class whetherPushNotifyToSendReadMessage1669138716634 {
|
||||
name = "whetherPushNotifyToSendReadMessage1669138716634";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "sw_subscription" ADD "sendReadMessage" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "sw_subscription" DROP COLUMN "sendReadMessage"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class PollChoiceLength1673336077243 {
|
||||
name = "PollChoiceLength1673336077243";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(256) array`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(128) array`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class DriveComment1677935903517 {
|
||||
name = "DriveComment1677935903517";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "drive_file" ALTER "comment" TYPE character varying(8192)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "drive_file" ALTER "comment" TYPE character varying(512)`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class addPropsForCustomEmoji1678945242650 {
|
||||
name = "addPropsForCustomEmoji1678945242650";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "emoji" ADD "license" character varying(1024)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "license"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class InstanceSilence1682891890317 {
|
||||
name = "InstanceSilence1682891890317";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "silencedHosts" character varying(256) array NOT NULL DEFAULT '{}'`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "silencedHosts"`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class AddHiddenPosts1682891891317 {
|
||||
name = "AddHiddenPosts1682891891317";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TYPE note_visibility_enum ADD VALUE IF NOT EXISTS 'hidden'`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TYPE note_visibility_enum REMOVE VALUE IF EXISTS 'hidden'`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class PreventAiLearning1683682889948 {
|
||||
name = "PreventAiLearning1683682889948";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "preventAiLearning" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "preventAiLearning"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
export class ExperimentalFeatures1683980686995 {
|
||||
name = "ExperimentalFeatures1683980686995";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE "meta"
|
||||
ADD "experimentalFeatures" jsonb NOT NULL DEFAULT '{}'
|
||||
`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`
|
||||
ALTER TABLE "meta" DROP COLUMN "experimentalFeatures"
|
||||
`);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class RemoveShowTimelineReplies1684206886988 {
|
||||
name = "RemoveShowTimelineReplies1684206886988";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user" DROP COLUMN "showTimelineReplies"`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user" ADD "showTimelineReplies" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
export class DonationLink1689136347561 {
|
||||
name = "DonationLink1689136347561";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "donationLink" character varying(256)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "DonationLink1689136347561"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class AddPostLang1695334243217 {
|
||||
name = "AddPostLang1695334243217";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "note" ADD "lang" character varying(10)`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "lang"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class MoreUrls1699305365258 {
|
||||
name = "MoreUrls1699305365258";
|
||||
|
||||
async up(queryRunner) {
|
||||
queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "moreUrls" jsonb NOT NULL DEFAULT '[]'`,
|
||||
);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "moreUrls"`);
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
export class DropUserProfileLanguage1708452631156 {
|
||||
name = "DropUserProfileLanguage1708452631156";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`);
|
||||
}
|
||||
|
||||
async down(queryRunner) {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD COLUMN "lang" character varying(32)`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
export class FixNoteUrlIndex1709129810501 {
|
||||
name = "FixNoteUrlIndex1709129810501";
|
||||
|
||||
async up(queryRunner) {
|
||||
await queryRunner.query(`DROP INDEX "IDX_note_url"`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_note_url" ON "note" ("url")`);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
/* You don't revert this migration */
|
||||
}
|
||||
}
|
|
@ -6,8 +6,9 @@
|
|||
"scripts": {
|
||||
"start": "pnpm node ./built/index.js",
|
||||
"start:test": "NODE_ENV=test pnpm node ./built/index.js",
|
||||
"migrate": "typeorm migration:run -d ormconfig.js",
|
||||
"revertmigration": "typeorm migration:revert -d ormconfig.js",
|
||||
"migration:run": "typeorm migration:run --dataSource ./built/ormconfig.js",
|
||||
"migration:revert": "typeorm migration:revert --dataSource ./built/ormconfig.js",
|
||||
"migration:new": "pnpm node ./scripts/create-migration.mjs",
|
||||
"check:connect": "node ./check_connect.js",
|
||||
"build": "pnpm swc src --out-dir built --source-maps false --copy-files --strip-leading-paths",
|
||||
"build:debug": "pnpm swc src --out-dir built --source-maps true --copy-files --strip-leading-paths",
|
||||
|
|
11
packages/backend/scripts/create-migration.mjs
Normal file
11
packages/backend/scripts/create-migration.mjs
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { execa } from "execa";
|
||||
|
||||
(async () => {
|
||||
await execa(
|
||||
"pnpm",
|
||||
["typeorm", "migration:create", `src/migration/${process.argv[2]}`],
|
||||
{
|
||||
stdio: "inherit",
|
||||
},
|
||||
);
|
||||
})();
|
|
@ -1,5 +1,7 @@
|
|||
export class Init1000000000000 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Init1000000000000 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`,
|
||||
);
|
||||
|
@ -712,7 +714,7 @@ export class Init1000000000000 {
|
|||
`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class Pages1556348509290 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class Pages1556348509290 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`,
|
||||
);
|
||||
|
@ -31,7 +33,7 @@ export class Pages1556348509290 {
|
|||
`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class UserProfile1556746559567 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UserProfile1556746559567 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`,
|
||||
);
|
||||
|
@ -7,7 +9,7 @@ export class UserProfile1556746559567 {
|
|||
`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`UPDATE "user_profile" SET github = FALSE, discord = FALSE`,
|
||||
);
|
12
packages/backend/src/migration/1557476068003-PinnedUsers.ts
Normal file
12
packages/backend/src/migration/1557476068003-PinnedUsers.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PinnedUsers1557476068003 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
export class AddSomeUrls1557761316509 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddSomeUrls1557761316509 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`,
|
||||
);
|
||||
|
@ -10,7 +12,7 @@ export class AddSomeUrls1557761316509 {
|
|||
`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://codeberg.org/firefish/firefish/issues'`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`);
|
|
@ -1,5 +1,7 @@
|
|||
export class ObjectStorageSetting1557932705754 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ObjectStorageSetting1557932705754 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
|
@ -31,7 +33,7 @@ export class ObjectStorageSetting1557932705754 {
|
|||
`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class PageLike1558072954435 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PageLike1558072954435 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
|
@ -19,7 +21,7 @@ export class PageLike1558072954435 {
|
|||
`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class UserGroup1558103093633 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UserGroup1558103093633 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
|
@ -46,7 +48,7 @@ export class UserGroup1558103093633 {
|
|||
`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class UserGroupInvite1558257926829 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UserGroupInvite1558257926829 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
|
@ -22,7 +24,7 @@ export class UserGroupInvite1558257926829 {
|
|||
`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`,
|
||||
);
|
|
@ -0,0 +1,12 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UserListJoining1558266512381 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
export class webauthn1561706992953 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class webauthn1561706992953 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`,
|
||||
);
|
||||
|
@ -28,7 +30,7 @@ export class webauthn1561706992953 {
|
|||
`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`,
|
||||
);
|
|
@ -1,5 +1,7 @@
|
|||
export class ChartIndexes1561873850023 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ChartIndexes1561873850023 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `,
|
||||
);
|
||||
|
@ -271,7 +273,7 @@ export class ChartIndexes1561873850023 {
|
|||
`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`);
|
|
@ -0,0 +1,14 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PasswordLessLogin1562422242907 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
export class PinnedPage1562444565093 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PinnedPage1562444565093 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`,
|
||||
);
|
||||
|
@ -10,7 +12,7 @@ export class PinnedPage1562444565093 {
|
|||
`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`,
|
||||
);
|
|
@ -0,0 +1,14 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class PageTitleHideOption1562448332510 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
export class ModerationLog1562869971568 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ModerationLog1562869971568 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`,
|
||||
);
|
||||
|
@ -10,7 +12,7 @@ export class ModerationLog1562869971568 {
|
|||
`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`,
|
||||
);
|
|
@ -1,10 +1,12 @@
|
|||
export class UsedUsername1563757595828 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UsedUsername1563757595828 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP TABLE "used_username"`);
|
||||
}
|
||||
}
|
12
packages/backend/src/migration/1565634203341-room.ts
Normal file
12
packages/backend/src/migration/1565634203341-room.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class room1565634203341 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class CustomEmojiCategory1571220798684 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "emoji" ADD "category" character varying(128)`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "emoji" DROP COLUMN "category"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
export class nodeinfo1572760203493 {
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class nodeinfo1572760203493 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "instance" DROP COLUMN "system"`,
|
||||
undefined,
|
||||
|
@ -37,7 +39,7 @@ export class nodeinfo1572760203493 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`,
|
||||
undefined,
|
|
@ -0,0 +1,16 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class TalkFederationId1576269851876 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "messaging_message" DROP COLUMN "uri"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class ProxyRemoteFiles1576869585998 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,8 +1,7 @@
|
|||
export class v121579267006611 {
|
||||
constructor() {
|
||||
this.name = "v121579267006611";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v121579267006611 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`,
|
||||
undefined,
|
||||
|
@ -48,7 +47,7 @@ export class v121579267006611 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`,
|
||||
undefined,
|
|
@ -1,14 +1,13 @@
|
|||
export class v1221579270193251 {
|
||||
constructor() {
|
||||
this.name = "v1221579270193251";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1221579270193251 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`,
|
||||
undefined,
|
|
@ -1,14 +1,13 @@
|
|||
export class v1231579282808087 {
|
||||
constructor() {
|
||||
this.name = "v1231579282808087";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1231579282808087 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`,
|
||||
undefined,
|
|
@ -1,8 +1,7 @@
|
|||
export class v1241579544426412 {
|
||||
constructor() {
|
||||
this.name = "v1241579544426412";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1241579544426412 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`,
|
||||
undefined,
|
||||
|
@ -12,7 +11,7 @@ export class v1241579544426412 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`,
|
||||
undefined,
|
|
@ -1,8 +1,7 @@
|
|||
export class v1251579977526288 {
|
||||
constructor() {
|
||||
this.name = "v1251579977526288";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1251579977526288 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`,
|
||||
undefined,
|
||||
|
@ -85,7 +84,7 @@ export class v1251579977526288 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`,
|
||||
undefined,
|
|
@ -1,8 +1,7 @@
|
|||
export class v1261579993013959 {
|
||||
constructor() {
|
||||
this.name = "v1261579993013959";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1261579993013959 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`,
|
||||
undefined,
|
||||
|
@ -16,7 +15,7 @@ export class v1261579993013959 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`,
|
||||
undefined,
|
|
@ -1,8 +1,7 @@
|
|||
export class v1271580069531114 {
|
||||
constructor() {
|
||||
this.name = "v1271580069531114";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1271580069531114 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`,
|
||||
undefined,
|
||||
|
@ -25,7 +24,7 @@ export class v1271580069531114 {
|
|||
);
|
||||
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`,
|
||||
undefined,
|
|
@ -1,8 +1,7 @@
|
|||
export class v1281580148575182 {
|
||||
constructor() {
|
||||
this.name = "v1281580148575182";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1281580148575182 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`,
|
||||
undefined,
|
||||
|
@ -12,7 +11,7 @@ export class v1281580148575182 {
|
|||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "note" ADD "appId" character varying(32)`,
|
||||
undefined,
|
|
@ -1,14 +1,13 @@
|
|||
export class v1291580154400017 {
|
||||
constructor() {
|
||||
this.name = "v1291580154400017";
|
||||
}
|
||||
async up(queryRunner) {
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class v1291580154400017 implements MigrationInterface {
|
||||
async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`,
|
||||
undefined,
|
||||
);
|
||||
}
|
||||
async down(queryRunner) {
|
||||
async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(
|
||||
`ALTER TABLE "antenna" DROP COLUMN "withReplies"`,
|
||||
undefined,
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue