2025-05-07 14:09:10 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
2025-08-14 11:17:38 +05:30
|
|
|
const crypto = require('node:crypto');
|
2025-05-07 14:09:10 +02:00
|
|
|
|
|
|
|
|
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),' +
|
2025-07-24 16:41:31 +02:00
|
|
|
'PRIMARY KEY (id)) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin';
|
2025-05-07 14:09:10 +02:00
|
|
|
|
|
|
|
|
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 (?, ?, ?, ?, ?, ?)',
|
2025-07-28 12:53:27 +02:00
|
|
|
[ `rc-${crypto.randomUUID()}`, registryConfig.provider, registryConfig.serverAddress, registryConfig.username, registryConfig.email || null, registryConfig.password ]);
|
2025-05-07 14:09:10 +02:00
|
|
|
}
|
|
|
|
|
|
2025-05-07 16:10:39 +02:00
|
|
|
await db.runSql('DELETE FROM settings WHERE name=?', [ 'registry_config']);
|
2025-05-07 14:09:10 +02:00
|
|
|
await db.runSql('COMMIT');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.down = async function (db) {
|
|
|
|
|
await db.runSql('DROP TABLE dockerRegistries');
|
|
|
|
|
};
|