wip
This commit is contained in:
parent
02f1521a8b
commit
ce64c8e864
|
|
@ -3,14 +3,14 @@
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { isConcurrentIndexMigrationEnabled } from "./js/migration-config.js";
|
const isConcurrentIndexMigrationEnabled = process.env.MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY === '1';
|
||||||
|
|
||||||
export class CompositeNoteIndex1745378064470 {
|
export class CompositeNoteIndex1745378064470 {
|
||||||
name = 'CompositeNoteIndex1745378064470';
|
name = 'CompositeNoteIndex1745378064470';
|
||||||
transaction = isConcurrentIndexMigrationEnabled() ? false : undefined;
|
transaction = isConcurrentIndexMigrationEnabled ? false : undefined;
|
||||||
|
|
||||||
async up(queryRunner) {
|
async up(queryRunner) {
|
||||||
const concurrently = isConcurrentIndexMigrationEnabled();
|
const concurrently = isConcurrentIndexMigrationEnabled;
|
||||||
|
|
||||||
if (concurrently) {
|
if (concurrently) {
|
||||||
const hasValidIndex = await queryRunner.query(`SELECT indisvalid FROM pg_index INNER JOIN pg_class ON pg_index.indexrelid = pg_class.oid WHERE pg_class.relname = 'IDX_724b311e6f883751f261ebe378'`);
|
const hasValidIndex = await queryRunner.query(`SELECT indisvalid FROM pg_index INNER JOIN pg_class ON pg_index.indexrelid = pg_class.oid WHERE pg_class.relname = 'IDX_724b311e6f883751f261ebe378'`);
|
||||||
|
|
@ -29,7 +29,7 @@ export class CompositeNoteIndex1745378064470 {
|
||||||
}
|
}
|
||||||
|
|
||||||
async down(queryRunner) {
|
async down(queryRunner) {
|
||||||
const mayConcurrently = isConcurrentIndexMigrationEnabled() ? 'CONCURRENTLY' : '';
|
const mayConcurrently = isConcurrentIndexMigrationEnabled ? 'CONCURRENTLY' : '';
|
||||||
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_724b311e6f883751f261ebe378"`);
|
await queryRunner.query(`DROP INDEX IF EXISTS "IDX_724b311e6f883751f261ebe378"`);
|
||||||
await queryRunner.query(`CREATE INDEX ${mayConcurrently} "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId")`);
|
await queryRunner.query(`CREATE INDEX ${mayConcurrently} "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId")`);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,17 +3,15 @@
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {loadConfig} from "./js/migration-config.js";
|
|
||||||
|
|
||||||
export class MigrateSomeConfigFileSettingsToMeta1746949539915 {
|
export class MigrateSomeConfigFileSettingsToMeta1746949539915 {
|
||||||
name = 'MigrateSomeConfigFileSettingsToMeta1746949539915'
|
name = 'MigrateSomeConfigFileSettingsToMeta1746949539915'
|
||||||
|
|
||||||
async up(queryRunner) {
|
async up(queryRunner) {
|
||||||
const config = loadConfig();
|
|
||||||
// $1 cannot be used in ALTER TABLE queries
|
// $1 cannot be used in ALTER TABLE queries
|
||||||
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT ${config.proxyRemoteFiles}`);
|
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT TRUE`);
|
||||||
await queryRunner.query(`ALTER TABLE "meta" ADD "signToActivityPubGet" boolean NOT NULL DEFAULT ${config.signToActivityPubGet}`);
|
await queryRunner.query(`ALTER TABLE "meta" ADD "signToActivityPubGet" boolean NOT NULL DEFAULT TRUE`);
|
||||||
await queryRunner.query(`ALTER TABLE "meta" ADD "allowExternalApRedirect" boolean NOT NULL DEFAULT ${!config.disallowExternalApRedirect}`);
|
await queryRunner.query(`ALTER TABLE "meta" ADD "allowExternalApRedirect" boolean NOT NULL DEFAULT TRUE`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async down(queryRunner) {
|
async down(queryRunner) {
|
||||||
|
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { compiledConfigFilePath } from '../../built/config.js';
|
|
||||||
import fs from "node:fs";
|
|
||||||
|
|
||||||
export function isConcurrentIndexMigrationEnabled() {
|
|
||||||
return process.env.MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY === '1';
|
|
||||||
}
|
|
||||||
|
|
||||||
let loadedConfigCache = undefined;
|
|
||||||
|
|
||||||
function loadConfigInternal() {
|
|
||||||
const config = JSON.parse(fs.readFileSync(compiledConfigFilePath, 'utf-8'));
|
|
||||||
|
|
||||||
return {
|
|
||||||
disallowExternalApRedirect: Boolean(config.disallowExternalApRedirect ?? false),
|
|
||||||
proxyRemoteFiles: Boolean(config.proxyRemoteFiles ?? false),
|
|
||||||
signToActivityPubGet: Boolean(config.signToActivityPubGet ?? true),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function loadConfig() {
|
|
||||||
if (loadedConfigCache === undefined) {
|
|
||||||
loadedConfigCache = loadConfigInternal();
|
|
||||||
}
|
|
||||||
return loadedConfigCache;
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { DataSource } from 'typeorm';
|
import { DataSource } from 'typeorm';
|
||||||
import { loadConfig } from './built/config.js';
|
import { loadConfig } from './built/config.js';
|
||||||
import { entities } from './built/postgres.js';
|
import { entities } from './built/postgres.js';
|
||||||
import { isConcurrentIndexMigrationEnabled } from "./migration/js/migration-config.js";
|
|
||||||
|
const isConcurrentIndexMigrationEnabled = process.env.MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY === '1';
|
||||||
|
|
||||||
const config = loadConfig();
|
const config = loadConfig();
|
||||||
|
|
||||||
|
|
@ -15,5 +16,5 @@ export default new DataSource({
|
||||||
extra: config.db.extra,
|
extra: config.db.extra,
|
||||||
entities: entities,
|
entities: entities,
|
||||||
migrations: ['migration/*.js'],
|
migrations: ['migration/*.js'],
|
||||||
migrationsTransactionMode: isConcurrentIndexMigrationEnabled() ? 'each' : 'all',
|
migrationsTransactionMode: isConcurrentIndexMigrationEnabled ? 'each' : 'all',
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue