mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-27 16:54:04 +00:00
Merge pull request #3017 from chakflying/v2/fix/external-database-setup
[2.0] Fix: Add external mariaDB setup
This commit is contained in:
commit
a2d147b88e
2 changed files with 16 additions and 2 deletions
|
@ -7,6 +7,7 @@ const knex = require("knex");
|
||||||
const { PluginsManager } = require("./plugins-manager");
|
const { PluginsManager } = require("./plugins-manager");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const { EmbeddedMariaDB } = require("./embedded-mariadb");
|
const { EmbeddedMariaDB } = require("./embedded-mariadb");
|
||||||
|
const mysql = require("mysql2/promise");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Database & App Data Folder
|
* Database & App Data Folder
|
||||||
|
@ -188,6 +189,19 @@ class Database {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else if (dbConfig.type === "mariadb") {
|
} else if (dbConfig.type === "mariadb") {
|
||||||
|
if (!/^\w+$/.test(dbConfig.dbName)) {
|
||||||
|
throw Error("Invalid database name. A database name can only consist of letters, numbers and underscores");
|
||||||
|
}
|
||||||
|
|
||||||
|
const connection = await mysql.createConnection({
|
||||||
|
host: dbConfig.hostname,
|
||||||
|
port: dbConfig.port,
|
||||||
|
user: dbConfig.username,
|
||||||
|
password: dbConfig.password,
|
||||||
|
});
|
||||||
|
|
||||||
|
await connection.execute("CREATE DATABASE IF NOT EXISTS " + dbConfig.dbName + " CHARACTER SET utf8mb4");
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
client: "mysql2",
|
client: "mysql2",
|
||||||
connection: {
|
connection: {
|
||||||
|
|
|
@ -614,7 +614,7 @@ let needSetup = false;
|
||||||
throw new Error("Password is too weak. It should contain alphabetic and numeric characters. It must be at least 6 characters in length.");
|
throw new Error("Password is too weak. It should contain alphabetic and numeric characters. It must be at least 6 characters in length.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((await R.count("user")) !== 0) {
|
if ((await R.knex("user").count("id as count").first()).count !== 0) {
|
||||||
throw new Error("Uptime Kuma has been initialized. If you want to run setup again, please delete the database.");
|
throw new Error("Uptime Kuma has been initialized. If you want to run setup again, please delete the database.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1683,7 +1683,7 @@ async function initDatabase(testMode = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is no record in user table, it is a new Uptime Kuma instance, need to setup
|
// If there is no record in user table, it is a new Uptime Kuma instance, need to setup
|
||||||
if ((await R.count("user")) === 0) {
|
if ((await R.knex("user").count("id as count").first()).count === 0) {
|
||||||
log.info("server", "No user, need setup");
|
log.info("server", "No user, need setup");
|
||||||
needSetup = true;
|
needSetup = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue