DB schema updated to "7". Fixed #74.
This commit is contained in:
parent
c9033d1213
commit
ec16fcab08
@ -1,6 +1,6 @@
|
||||
DROP DATABASE IF EXISTS ##;
|
||||
-- !
|
||||
CREATE DATABASE IF NOT EXISTS ## CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
CREATE DATABASE IF NOT EXISTS ## CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
-- !
|
||||
USE ##;
|
||||
-- !
|
||||
|
@ -1,4 +1,3 @@
|
||||
-- !
|
||||
ALTER TABLE Messages
|
||||
ADD COLUMN custom_hash TEXT;
|
||||
-- !
|
||||
|
22
resources/misc/db_update_mysql_6_7.sql
Executable file
22
resources/misc/db_update_mysql_6_7.sql
Executable file
@ -0,0 +1,22 @@
|
||||
-- !
|
||||
ALTER DATABASE ##
|
||||
CHARACTER SET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci;
|
||||
-- !
|
||||
USE ##
|
||||
-- !
|
||||
ALTER TABLE messages
|
||||
CONVERT TO CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
-- !
|
||||
ALTER TABLE messages
|
||||
CHANGE title title TEXT
|
||||
CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
-- !
|
||||
ALTER TABLE messages
|
||||
CHANGE contents contents TEXT
|
||||
CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
-- !
|
||||
UPDATE Information SET inf_value = '7' WHERE inf_key = 'schema_version';
|
1
resources/misc/db_update_sqlite_6_7.sql
Executable file
1
resources/misc/db_update_sqlite_6_7.sql
Executable file
@ -0,0 +1 @@
|
||||
UPDATE Information SET inf_value = '7' WHERE inf_key = 'schema_version';
|
@ -2,6 +2,7 @@
|
||||
—————
|
||||
|
||||
Added:
|
||||
▪ MySQL database backend now requires at least version 5.5, DB encoding is now changed to utf8mb4 character set. (bug #74)
|
||||
▪ Height if message attachment image is now configurable, defaults to 36. (issue #69)
|
||||
|
||||
Changed:
|
||||
|
@ -109,7 +109,7 @@
|
||||
#define APP_DB_SQLITE_FILE "database.db"
|
||||
|
||||
// Keep this in sync with schema versions declared in SQL initialization code.
|
||||
#define APP_DB_SCHEMA_VERSION "6"
|
||||
#define APP_DB_SCHEMA_VERSION "7"
|
||||
#define APP_DB_UPDATE_FILE_PATTERN "db_update_%1_%2_%3.sql"
|
||||
#define APP_DB_COMMENT_SPLIT "-- !\n"
|
||||
#define APP_DB_WEB_PATH "data/database/web"
|
||||
|
@ -442,7 +442,7 @@ bool DatabaseFactory::sqliteUpdateDatabaseSchema(QSqlDatabase database, const QS
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DatabaseFactory::mysqlUpdateDatabaseSchema(QSqlDatabase database, const QString &source_db_schema_version) {
|
||||
bool DatabaseFactory::mysqlUpdateDatabaseSchema(QSqlDatabase database, const QString &source_db_schema_version, const QString &db_name) {
|
||||
int working_version = QString(source_db_schema_version).remove('.').toInt();
|
||||
const int current_version = QString(APP_DB_SCHEMA_VERSION).remove('.').toInt();
|
||||
|
||||
@ -464,8 +464,8 @@ bool DatabaseFactory::mysqlUpdateDatabaseSchema(QSqlDatabase database, const QSt
|
||||
|
||||
QStringList statements = QString(update_file_handle.readAll()).split(APP_DB_COMMENT_SPLIT, QString::SkipEmptyParts);
|
||||
|
||||
foreach (const QString &statement, statements) {
|
||||
QSqlQuery query = database.exec(statement);
|
||||
foreach (QString statement, statements) {
|
||||
QSqlQuery query = database.exec(statement.replace(APP_DB_NAME_PLACEHOLDER, db_name));
|
||||
|
||||
if (query.lastError().isValid()) {
|
||||
qFatal("Query for updating database schema failed: '%s'.", qPrintable(query.lastError().text()));
|
||||
@ -691,7 +691,7 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_
|
||||
const QString installed_db_schema = query_db.value(0).toString();
|
||||
|
||||
if (installed_db_schema < APP_DB_SCHEMA_VERSION) {
|
||||
if (mysqlUpdateDatabaseSchema(database, installed_db_schema)) {
|
||||
if (mysqlUpdateDatabaseSchema(database, installed_db_schema, database_name)) {
|
||||
qDebug("Database schema was updated from '%s' to '%s' successully or it is already up to date.",
|
||||
qPrintable(installed_db_schema),
|
||||
APP_DB_SCHEMA_VERSION);
|
||||
|
@ -135,7 +135,7 @@ class DatabaseFactory : public QObject {
|
||||
QSqlDatabase mysqlInitializeDatabase(const QString &connection_name);
|
||||
|
||||
// Updates database schema.
|
||||
bool mysqlUpdateDatabaseSchema(QSqlDatabase database, const QString &source_db_schema_version);
|
||||
bool mysqlUpdateDatabaseSchema(QSqlDatabase database, const QString &source_db_schema_version, const QString &db_name);
|
||||
|
||||
// Runs "VACUUM" on the database.
|
||||
bool mysqlVacuumDatabase();
|
||||
|
Loading…
x
Reference in New Issue
Block a user