mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
new migration to create search indexes
This commit is contained in:
parent
8e58e1a395
commit
b3f5bf4e6a
@ -86,13 +86,6 @@ class Store {
|
|||||||
if (CONFIG.CATEGORIES_ACTIVE) await createCategories(session)
|
if (CONFIG.CATEGORIES_ACTIVE) await createCategories(session)
|
||||||
const writeTxResultPromise = session.writeTransaction(async (txc) => {
|
const writeTxResultPromise = session.writeTransaction(async (txc) => {
|
||||||
await txc.run('CALL apoc.schema.assert({},{},true)') // drop all indices and constraints
|
await txc.run('CALL apoc.schema.assert({},{},true)') // drop all indices and constraints
|
||||||
return Promise.all(
|
|
||||||
[
|
|
||||||
'CALL db.index.fulltext.createNodeIndex("user_fulltext_search",["User"],["name", "slug"])',
|
|
||||||
'CALL db.index.fulltext.createNodeIndex("post_fulltext_search",["Post"],["title", "content"])',
|
|
||||||
'CALL db.index.fulltext.createNodeIndex("tag_fulltext_search",["Tag"],["id"])',
|
|
||||||
].map((statement) => txc.run(statement)),
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
await writeTxResultPromise
|
await writeTxResultPromise
|
||||||
|
|||||||
@ -0,0 +1,54 @@
|
|||||||
|
import { getDriver } from '../../db/neo4j'
|
||||||
|
|
||||||
|
export const description = ''
|
||||||
|
|
||||||
|
export async function up(next) {
|
||||||
|
const driver = getDriver()
|
||||||
|
const session = driver.session()
|
||||||
|
const transaction = session.beginTransaction()
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Drop all indexes because due to legacy code they might be set already
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("user_fulltext_search")`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("post_fulltext_search")`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("tag_fulltext_search")`)
|
||||||
|
// Create indexes
|
||||||
|
await transaction.run(`CALL db.index.fulltext.createNodeIndex("user_fulltext_search",["User"],["name", "slug"])`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.createNodeIndex("post_fulltext_search",["Post"],["title", "content"])`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.createNodeIndex("tag_fulltext_search",["Tag"],["id"])`)
|
||||||
|
await transaction.commit()
|
||||||
|
next()
|
||||||
|
} catch (error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log(error)
|
||||||
|
await transaction.rollback()
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('rolled back')
|
||||||
|
throw new Error(error)
|
||||||
|
} finally {
|
||||||
|
session.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function down(next) {
|
||||||
|
const driver = getDriver()
|
||||||
|
const session = driver.session()
|
||||||
|
const transaction = session.beginTransaction()
|
||||||
|
|
||||||
|
try {
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("user_fulltext_search")`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("post_fulltext_search")`)
|
||||||
|
await transaction.run(`CALL db.index.fulltext.drop("tag_fulltext_search")`)
|
||||||
|
await transaction.commit()
|
||||||
|
next()
|
||||||
|
} catch (error) {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log(error)
|
||||||
|
await transaction.rollback()
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('rolled back')
|
||||||
|
throw new Error(error)
|
||||||
|
} finally {
|
||||||
|
session.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user