Akonadi
dbinitializer.h
57 static DbInitializer::Ptr createInstance(const QSqlDatabase &database, Schema *schema = nullptr);
115 virtual QString buildColumnStatement(const ColumnDescription &columnDescription, const TableDescription &tableDescription) const = 0;
116 virtual QString buildAddColumnStatement(const TableDescription &tableDescription, const ColumnDescription &columnDescription) const;
117 virtual QString buildCreateIndexStatement(const TableDescription &tableDescription, const IndexDescription &indexDescription) const;
118 virtual QString buildInsertValuesStatement(const TableDescription &tableDescription, const DataDescription &dataDescription) const = 0;
122 * The default implementation returns an empty string, so any backend supporting foreign key constraints
125 virtual QStringList buildAddForeignKeyConstraintStatements(const TableDescription &table, const ColumnDescription &column) const;
129 * The default implementation returns an empty string, so any backend supporting foreign key constraints
132 virtual QStringList buildRemoveForeignKeyConstraintStatements(const DbIntrospector::ForeignKey &fk, const TableDescription &table) const;
134 static QString buildReferentialAction(ColumnDescription::ReferentialAction onUpdate, ColumnDescription::ReferentialAction onDelete);
A helper class that describes a column of a table for the DbInitializer.
Definition: schematypes.h:32
A helper class that describes the relation between two tables for the DbInitializer.
Definition: schematypes.h:107
A helper class that describes indexes of a table for the DbInitializer.
Definition: schematypes.h:64
QString errorMsg() const
Returns the textual description of an occurred error.
Definition: dbinitializer.cpp:212
A structure describing an existing foreign key.
Definition: dbintrospector.h:30
static QString buildPrimaryKeyStatement(const TableDescription &table)
Use for multi-column primary keys during table creation.
Definition: dbinitializer.cpp:366
virtual QStringList buildAddForeignKeyConstraintStatements(const TableDescription &table, const ColumnDescription &column) const
Returns an SQL statements to add a foreign key constraint to an existing column column.
Definition: dbinitializer.cpp:332
static DbInitializer::Ptr createInstance(const QSqlDatabase &database, Schema *schema=nullptr)
Returns an initializer instance for a given backend.
Definition: dbinitializer.cpp:26
virtual QStringList buildRemoveForeignKeyConstraintStatements(const DbIntrospector::ForeignKey &fk, const TableDescription &table) const
Returns an SQL statements to remove the foreign key constraint fk from table table.
Definition: dbinitializer.cpp:339
A helper class that describes a table for the DbInitializer.
Definition: schematypes.h:92
virtual QString sqlType(const ColumnDescription &col, int size) const
Overwrite in backend-specific sub-classes to return the SQL type for a given C++ type.
Definition: dbinitializer.cpp:267
virtual bool hasForeignKeyConstraints() const =0
Returns whether the database has working and complete foreign keys.
DbInitializer(const QSqlDatabase &database)
Creates a new database initializer.
Definition: dbinitializer.cpp:47
virtual QString buildCreateTableStatement(const TableDescription &tableDescription) const =0
Returns a backend-specific CREATE TABLE SQL query describing given table.
bool updateIndexesAndConstraints()
Checks and creates missing indexes.
Definition: dbinitializer.cpp:217
virtual QString sqlValue(const ColumnDescription &col, const QString &value) const
Overwrite in backend-specific sub-classes to return the SQL value for a given C++ value.
Definition: dbinitializer.cpp:297
A helper class that describes the predefined data of a table for the DbInitializer.
Definition: schematypes.h:78
A helper class which takes a reference to a database object and the file name of a template file and ...
Definition: dbinitializer.h:47
Helper integration between Akonadi and Qt.
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Mon Jun 27 2022 04:01:06 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2022 The KDE developers.
Generated on Mon Jun 27 2022 04:01:06 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.