directus

Форк
0
29 строк · 790.0 Байт
1
import { SchemaHelper } from '../types.js';
2

3
export class SchemaHelperSQLite extends SchemaHelper {
4
	override async preColumnChange(): Promise<boolean> {
5
		const foreignCheckStatus = (await this.knex.raw('PRAGMA foreign_keys'))[0].foreign_keys === 1;
6

7
		if (foreignCheckStatus) {
8
			await this.knex.raw('PRAGMA foreign_keys = OFF');
9
		}
10

11
		return foreignCheckStatus;
12
	}
13

14
	override async postColumnChange(): Promise<void> {
15
		await this.knex.raw('PRAGMA foreign_keys = ON');
16
	}
17

18
	override async getDatabaseSize(): Promise<number | null> {
19
		try {
20
			const result = await this.knex.raw(
21
				'SELECT page_count * page_size as "size" FROM pragma_page_count(), pragma_page_size();',
22
			);
23

24
			return result[0]?.['size'] ? Number(result[0]?.['size']) : null;
25
		} catch {
26
			return null;
27
		}
28
	}
29
}
30

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.