1
0
Fork 0

Add database migrations

This commit is contained in:
Cadence Ember 2023-10-01 01:24:05 +13:00
parent 7a218f1254
commit 1d99b91ef7
11 changed files with 263 additions and 33 deletions

View file

@ -1,3 +1,5 @@
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "sim" (
"discord_id" TEXT NOT NULL,
"sim_name" TEXT NOT NULL UNIQUE,
@ -86,3 +88,5 @@ CREATE TABLE IF NOT EXISTS "reaction" (
"encoded_emoji" TEXT NOT NULL,
PRIMARY KEY ("hashed_event_id")
) WITHOUT ROWID;
COMMIT;

View file

@ -1,3 +1,5 @@
BEGIN TRANSACTION;
-- Change hashed_profile_content column affinity to INTEGER
CREATE TABLE "new_sim_member" (
@ -13,4 +15,6 @@ DROP TABLE sim_member;
ALTER TABLE new_sim_member RENAME TO sim_member;
COMMIT;
VACUUM;

View file

@ -1,13 +1,13 @@
module.exports = async function(db) {
const hasher = await require("xxhash-wasm")()
const contents = db.prepare("SELECT distinct hashed_profile_content FROM sim_member").pluck().all()
const contents = db.prepare("SELECT distinct hashed_profile_content FROM sim_member WHERE hashed_profile_content IS NOT NULL").pluck().all()
const stmt = db.prepare("UPDATE sim_member SET hashed_profile_content = ? WHERE hashed_profile_content = ?")
db.transaction(() => {
for (const s of contents) {
if (!Buffer.isBuffer(s)) s = Buffer.from(s)
const unsignedHash = hasher.h64(eventID)
for (let s of contents) {
let b = Buffer.isBuffer(s) ? Uint8Array.from(s) : Uint8Array.from(Buffer.from(s))
const unsignedHash = hasher.h64Raw(b)
const signedHash = unsignedHash - 0x8000000000000000n // shifting down to signed 64-bit range
stmt.run(s, signedHash)
stmt.run(signedHash, s)
}
})()
}