mostly because code is being autogenerated by all the AI stuff using this prefix. it's also used in the stack trace.
35 lines
1.3 KiB
JavaScript
35 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
const crypto = require('node:crypto');
|
|
|
|
exports.up = async function (db) {
|
|
const cmd = 'CREATE TABLE IF NOT EXISTS dockerRegistries(' +
|
|
'id VARCHAR(128) NOT NULL UNIQUE,' +
|
|
'provider VARCHAR(16) NOT NULL,' +
|
|
'serverAddress VARCHAR(128) NOT NULL,' +
|
|
'username VARCHAR(128),' +
|
|
'email VARCHAR(128),' +
|
|
'password VARCHAR(128),' +
|
|
'PRIMARY KEY (id)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin';
|
|
|
|
await db.runSql(cmd);
|
|
|
|
const result = await db.runSql('SELECT * FROM settings WHERE name=?', [ 'registry_config' ]);
|
|
if (!result.length) return;
|
|
|
|
await db.runSql('START TRANSACTION');
|
|
const registryConfig = JSON.parse(result[0].value);
|
|
|
|
if (registryConfig.provider !== 'noop') {
|
|
await db.runSql('INSERT INTO dockerRegistries (id, provider, serverAddress, username, email, password) VALUES (?, ?, ?, ?, ?, ?)',
|
|
[ `rc-${crypto.randomUUID()}`, registryConfig.provider, registryConfig.serverAddress, registryConfig.username, registryConfig.email || null, registryConfig.password ]);
|
|
}
|
|
|
|
await db.runSql('DELETE FROM settings WHERE name=?', [ 'registry_config']);
|
|
await db.runSql('COMMIT');
|
|
};
|
|
|
|
exports.down = async function (db) {
|
|
await db.runSql('DROP TABLE dockerRegistries');
|
|
};
|