mirror of
https://github.com/thelounge/thelounge.git
synced 2024-06-09 09:12:20 +02:00
Disable databases if initizialisation fails
This commit is contained in:
parent
91ddee6d3b
commit
43ffe5223f
|
@ -35,19 +35,21 @@ class MessageStorage {
|
|||
}
|
||||
|
||||
enable() {
|
||||
if (!sqlite3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const logsPath = Helper.getUserLogsPath();
|
||||
const sqlitePath = path.join(logsPath, `${this.client.name}.sqlite3`);
|
||||
|
||||
try {
|
||||
fs.mkdirSync(logsPath, {recursive: true});
|
||||
} catch (e) {
|
||||
log.error("Unable to create logs directory", e);
|
||||
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
this.isEnabled = true;
|
||||
|
||||
const sqlitePath = path.join(logsPath, `${this.client.name}.sqlite3`);
|
||||
this.database = new sqlite3.Database(sqlitePath);
|
||||
this.database.serialize(() => {
|
||||
schema.forEach((line) => this.database.run(line));
|
||||
|
@ -56,6 +58,7 @@ class MessageStorage {
|
|||
"SELECT value FROM options WHERE name = 'schema_version'",
|
||||
(err, row) => {
|
||||
if (err) {
|
||||
this.isEnabled = false;
|
||||
return log.error(`Failed to retrieve schema version: ${err}`);
|
||||
}
|
||||
|
||||
|
@ -78,6 +81,7 @@ class MessageStorage {
|
|||
}
|
||||
|
||||
if (storedSchemaVersion > currentSchemaVersion) {
|
||||
this.isEnabled = false;
|
||||
return log.error(
|
||||
`sqlite messages schema version is higher than expected (${storedSchemaVersion} > ${currentSchemaVersion}). Is The Lounge out of date?`
|
||||
);
|
||||
|
@ -96,6 +100,9 @@ class MessageStorage {
|
|||
}
|
||||
);
|
||||
});
|
||||
|
||||
this.isEnabled = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
close(callback) {
|
||||
|
|
|
@ -11,10 +11,22 @@ class MessageStorage {
|
|||
constructor(client) {
|
||||
this.client = client;
|
||||
this.isEnabled = false;
|
||||
this._clientFolder = null;
|
||||
}
|
||||
|
||||
enable() {
|
||||
this.isEnabled = true;
|
||||
const clientFolder = path.join(Helper.getUserLogsPath(), this.client.name);
|
||||
|
||||
try {
|
||||
fs.mkdirSync(clientFolder, {recursive: true});
|
||||
this._clientFolder = clientFolder;
|
||||
this.isEnabled = true;
|
||||
return true;
|
||||
} catch (e) {
|
||||
log.error(`Unable to create client log directory at: "${clientFolder}"`, e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
close(callback) {
|
||||
|
@ -94,7 +106,7 @@ class MessageStorage {
|
|||
|
||||
fs.appendFile(logPath, line, (e) => {
|
||||
if (e) {
|
||||
log.error("Failed to write user log", e);
|
||||
log.error(`Failed to write user log at: "${logPath}"`, e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -111,17 +123,13 @@ class MessageStorage {
|
|||
}
|
||||
|
||||
_getLogPath(network, channel) {
|
||||
const logFolder = path.join(
|
||||
Helper.getUserLogsPath(),
|
||||
this.client.name,
|
||||
this._getNetworkFolderName(network)
|
||||
);
|
||||
const logFolder = path.join(this._clientFolder, this._getNetworkFolderName(network));
|
||||
|
||||
try {
|
||||
fs.mkdirSync(logFolder, {recursive: true});
|
||||
return path.join(logFolder, this._getChannelFileName(channel));
|
||||
} catch (e) {
|
||||
log.error("Unable to create logs directory", e);
|
||||
log.error(`Unable to create network log directory at: "${logFolder}"`, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue