MythTV  master
Macros | Functions | Variables
dbcheck.cpp File Reference
#include <cstdio>
#include <iostream>
#include <QString>
#include <QSqlError>
#include "libmyth/schemawizard.h"
#include "libmythbase/compat.h"
#include "libmythbase/dbutil.h"
#include "libmythbase/mythconfig.h"
#include "libmythbase/mythcorecontext.h"
#include "libmythbase/mythdb.h"
#include "libmythbase/mythdbcheck.h"
#include "libmythbase/mythlogging.h"
#include "libmythbase/mythversion.h"
#include "cardutil.h"
#include "dbcheck.h"
#include "mythvideoprofile.h"
#include "recordinginfo.h"
#include "recordingprofile.h"
#include "recordingrule.h"
#include "videodbcheck.h"
Include dependency graph for dbcheck.cpp:

Go to the source code of this file.

Macros

#define MINIMUM_DBMS_VERSION   5,0,15
 

Functions

static bool doUpgradeTVDatabaseSchema (void)
 This is called by UpgradeTVDatabaseSchema() to actually upgrade the schema to what MythTV expects. More...
 
static bool tryUpgradeTVDatabaseSchema (bool upgradeAllowed, bool upgradeIfNoUI, bool informSystemd)
 
static void db_sd_notify (const char *)
 
bool UpgradeTVDatabaseSchema (const bool upgradeAllowed, const bool upgradeIfNoUI, [[maybe_unused]] const bool informSystemd)
 Called from outside dbcheck.cpp to update the schema. More...
 
bool InitializeMythSchema (void)
 command to get the the initial database layout from an empty database: More...
 

Variables

const QString currentDatabaseVersion = MYTH_DATABASE_VERSION
 

Macro Definition Documentation

◆ MINIMUM_DBMS_VERSION

#define MINIMUM_DBMS_VERSION   5,0,15

Definition at line 27 of file dbcheck.cpp.

Function Documentation

◆ doUpgradeTVDatabaseSchema()

static bool doUpgradeTVDatabaseSchema ( void  )
static

This is called by UpgradeTVDatabaseSchema() to actually upgrade the schema to what MythTV expects.

This function Initializes the database if the "DBSchemaVer" property does not exist in the database. Otherwise it upgrades the schema from the one in that property to the currentDatabaseVersion, by running the SQL commands needed for each upgrade between the two versions. This will only upgrade the schema, so bad things may happen if you upgrade and then downgrade MythTV across DB Schema versions.

Definition at line 466 of file dbcheck.cpp.

Referenced by tryUpgradeTVDatabaseSchema().

◆ tryUpgradeTVDatabaseSchema()

static bool tryUpgradeTVDatabaseSchema ( bool  upgradeAllowed,
bool  upgradeIfNoUI,
bool  informSystemd 
)
static

Definition at line 410 of file dbcheck.cpp.

Referenced by UpgradeTVDatabaseSchema().

◆ db_sd_notify()

static void db_sd_notify ( const char *  )
inlinestatic

Definition at line 41 of file dbcheck.cpp.

Referenced by tryUpgradeTVDatabaseSchema(), and UpgradeTVDatabaseSchema().

◆ UpgradeTVDatabaseSchema()

bool UpgradeTVDatabaseSchema ( const bool  upgradeAllowed,
const bool  upgradeIfNoUI,
[[maybe_unused] ] const bool  informSystemd 
)

Called from outside dbcheck.cpp to update the schema.

If the "DBSchemaVer" property equals the currentDatabase version this returns true immediately. If not, we try to do a database backup, if interactive prompt the user for permission to do the upgrade, and if permitted or non-interactive with a successful backup do the actual update.

If the program running this function is killed while this is running then the schema may be corrupted.

Returns
false on failure, error, or if the user selected "Exit."

Definition at line 362 of file dbcheck.cpp.

Referenced by main(), and run_backend().

◆ InitializeMythSchema()

bool InitializeMythSchema ( void  )

command to get the the initial database layout from an empty database:

mysqldump \ –skip-comments –skip-opt –compact –skip-quote-names \ –create-options –ignore-table=mythconverg.schemalock mythconverg | \ sed '/^(SET|INS).*;$/d;/^\/*!40101.*$/d;s/^.*[^;]$/"&"/;s/^).*;$/"&",/'

command to get the initial data:

mysqldump \ –skip-comments –skip-opt –compact –skip-quote-names -t \ –ignore-table=mythconverg.logging mythconverg | sed -e 's/^.*$/"&",/' -e 's#\#\\#g'

don't forget to delete host specific data

Definition at line 4098 of file dbcheck.cpp.

Referenced by doUpgradeTVDatabaseSchema(), and main().

Variable Documentation

◆ currentDatabaseVersion

const QString currentDatabaseVersion = MYTH_DATABASE_VERSION

Definition at line 29 of file dbcheck.cpp.

Referenced by doUpgradeTVDatabaseSchema(), and tryUpgradeTVDatabaseSchema().