mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-26 10:26:15 -04:00
Added new database rustydb (#6632)
Co-authored-by: SamTv12345 <samtv12345@samtv12345.com>
This commit is contained in:
parent
d010d53195
commit
d4cbbf18e0
7 changed files with 245 additions and 14 deletions
83
bin/migrateDB.ts
Normal file
83
bin/migrateDB.ts
Normal file
|
@ -0,0 +1,83 @@
|
|||
// DB migration
|
||||
import {readFileSync} from 'node:fs'
|
||||
import {Database, DatabaseType} from "ueberdb2";
|
||||
import path from "node:path";
|
||||
const settings = require('ep_etherpad-lite/node/utils/Settings');
|
||||
|
||||
|
||||
// file1 = source, file2 = target
|
||||
// pnpm run migrateDB --file1 <db1.json> --file2 <db2.json>
|
||||
const arg = process.argv.slice(2);
|
||||
|
||||
if (arg.length != 4) {
|
||||
console.error('Wrong number of arguments!. Call with pnpm run migrateDB --file1 source.json target.json')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
type SettingsConfig = {
|
||||
dbType: string,
|
||||
dbSettings: any
|
||||
}
|
||||
|
||||
/*
|
||||
{
|
||||
"dbType": "<your-db-type>",
|
||||
"dbSettings": {
|
||||
<your-db-settings>
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
let firstDBSettingsFile: string
|
||||
let secondDBSettingsFile: string
|
||||
|
||||
|
||||
if (arg[0] == "--file1") {
|
||||
firstDBSettingsFile = arg[1]
|
||||
} else if (arg[0] === "--file2") {
|
||||
secondDBSettingsFile = arg[1]
|
||||
}
|
||||
|
||||
if (arg[2] == "--file1") {
|
||||
firstDBSettingsFile = arg[3]
|
||||
} else if (arg[2] === "--file2") {
|
||||
secondDBSettingsFile = arg[3]
|
||||
}
|
||||
|
||||
|
||||
|
||||
const settingsfile = JSON.parse(readFileSync(path.join(settings.root,firstDBSettingsFile!)).toString()) as SettingsConfig
|
||||
const settingsfile2 = JSON.parse(readFileSync(path.join(settings.root,secondDBSettingsFile!)).toString()) as SettingsConfig
|
||||
|
||||
console.log(settingsfile2)
|
||||
if ("filename" in settingsfile.dbSettings) {
|
||||
settingsfile.dbSettings.filename = path.join(settings.root, settingsfile.dbSettings.filename)
|
||||
console.log(settingsfile.dbType + " location is "+ settingsfile.dbSettings.filename)
|
||||
}
|
||||
|
||||
if ("filename" in settingsfile2.dbSettings) {
|
||||
settingsfile2.dbSettings.filename = path.join(settings.root, settingsfile2.dbSettings.filename)
|
||||
console.log(settingsfile2.dbType + " location is "+ settingsfile2.dbSettings.filename)
|
||||
}
|
||||
|
||||
const ueberdb1 = new Database(settingsfile.dbType as DatabaseType, settingsfile.dbSettings)
|
||||
const ueberdb2 = new Database(settingsfile2.dbType as DatabaseType, settingsfile2.dbSettings)
|
||||
|
||||
const handleSync = async ()=>{
|
||||
await ueberdb1.init()
|
||||
await ueberdb2.init()
|
||||
|
||||
const allKeys = await ueberdb1.findKeys('*','')
|
||||
for (const key of allKeys) {
|
||||
const foundVal = await ueberdb1.get(key)!
|
||||
await ueberdb2.set(key, foundVal)
|
||||
}
|
||||
}
|
||||
|
||||
handleSync().then(()=>{
|
||||
console.log("Done syncing dbs")
|
||||
}).catch(e=>{
|
||||
console.log(`Error syncing db ${e}`)
|
||||
})
|
||||
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
"log4js": "^6.9.1",
|
||||
"semver": "^7.6.3",
|
||||
"tsx": "^4.19.0",
|
||||
"ueberdb2": "^4.2.94"
|
||||
"ueberdb2": "^4.2.100"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.5.3",
|
||||
|
@ -34,7 +34,8 @@
|
|||
"stalePlugins": "node --import tsx ./plugins/stalePlugins.ts",
|
||||
"checkPlugin": "node --import tsx ./plugins/checkPlugin.ts",
|
||||
"plugins": "node --import tsx ./plugins.ts",
|
||||
"generateChangelog": "node --import tsx generateReleaseNotes.ts"
|
||||
"generateChangelog": "node --import tsx generateReleaseNotes.ts",
|
||||
"migrateDB": "node --import tsx migrateDB.ts"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue