KexiMigration::KexiMigrate Class Reference
#include <keximigrate.h>
Inheritance diagram for KexiMigration::KexiMigrate:

Detailed Description
Imports non-native databases into Kexi projects.A generic API for importing schema and data from an existing database into a new Kexi project. Can be also used for importing native Kexi databases.
Basic idea is this:
- User selects an existing DB and new project (file or server based)
- User specifies whether to import structure and data or structure only.
- Import tool connects to db
- Checks if it is already a kexi project (not implemented yet)
- If not, then read structure and construct new project
- Ask user what to do if column type is not supported
See kexi/doc/dev/kexi_import.txt for more info.
Definition at line 78 of file keximigrate.h.
Signals | |
| void | progressPercent (int percent) |
Public Member Functions | |
| virtual | ~KexiMigrate () |
| KexiMigration::Data * | data () const |
| void | setData (KexiMigration::Data *migrateData) |
| Data Setup. Requires two connection objects, a name and a bool. | |
| bool | checkIfDestinationDatabaseOverwritingNeedsAccepting (Kexi::ObjectStatus *result, bool &acceptingNeeded) |
| bool | isSourceAndDestinationDataSourceTheSame () const |
| bool | performImport (Kexi::ObjectStatus *result=0) |
| Perform an import operation. | |
| bool | performExport (Kexi::ObjectStatus *result=0) |
| Perform an export operation. | |
| bool | progressSupported () |
| Returns true if the migration driver supports progress updates. | |
| virtual int | versionMajor () const =0 |
| virtual int | versionMinor () const =0 |
| virtual QVariant | propertyValue (const QCString &propName) |
| void | setPropertyValue (const QCString &propName, const QVariant &value) |
| QString | propertyCaption (const QCString &propName) const |
| QValueList< QCString > | propertyNames () const |
| virtual bool | isValid () |
Protected Member Functions | |
| KexiMigrate (QObject *parent, const char *name, const QStringList &args=QStringList()) | |
| Used by MigrateManager. | |
| virtual bool | drv_connect ()=0 |
| Connect to source database (driver specific). | |
| virtual bool | drv_disconnect ()=0 |
| Disconnect from source database (driver specific). | |
| virtual bool | drv_tableNames (QStringList &tablenames)=0 |
| Get table names in source database (driver specific). | |
| virtual bool | drv_readTableSchema (const QString &originalName, KexiDB::TableSchema &tableSchema)=0 |
| Read schema for a given table (driver specific). | |
| virtual bool | drv_queryMaxNumber (const QString &tableName, const QString &columnName, int &result) |
| virtual tristate | drv_queryStringListFromSQL (const QString &sqlStatement, uint columnNumber, QStringList &stringList, int numRecords=-1) |
| virtual tristate | drv_querySingleStringFromSQL (const QString &sqlStatement, uint columnNumber, QString &string) |
| virtual tristate | drv_fetchRecordFromSQL (const QString &sqlStatement, KexiDB::RowData &data, bool &firstRecord) |
| virtual bool | drv_copyTable (const QString &srcTable, KexiDB::Connection *destConn, KexiDB::TableSchema *dstTable)=0 |
Copy a table from source DB to target DB (driver specific)
| |
| virtual bool | drv_progressSupported () |
| virtual bool | drv_getTableSize (const QString &, Q_ULLONG &) |
| void | updateProgress (Q_ULLONG step=1ULL) |
| KexiDB::Field::Type | userType (const QString &fname) |
| Prompt user to select a field type for unrecognized fields. | |
| virtual QString | drv_escapeIdentifier (const QString &str) const |
Protected Attributes | |
| KexiMigration::Data * | m_migrateData |
| Migrate Options. | |
| QMap< QCString, QVariant > | m_properties |
| QMap< QCString, QString > | m_propertyCaptions |
| QGuardedPtr< KexiDB::Driver > | m_kexiDBDriver |
| KexiDB driver. For instance, it is used for escaping identifiers. | |
Friends | |
| class | MigrateManager |
Constructor & Destructor Documentation
|
|
Definition at line 59 of file keximigrate.cpp. |
|
||||||||||||||||
|
Used by MigrateManager.
Definition at line 36 of file keximigrate.cpp. |
Member Function Documentation
|
||||||||||||
|
Checks whether the destination database exists. For file-based dest. projects, we've already asked about overwriting existing project but for server-based projects it's better to ask user. This method should be called before performImport() or performExport().
Definition at line 64 of file keximigrate.cpp. References Kexi::ObjectStatus::clearStatus(), KexiDB::Connection::connect(), KexiProjectData::connectionData(), KexiDB::Driver::createConnection(), KexiDB::Connection::databaseExists(), KexiProjectData::databaseName(), KexiMigration::Data::destination, KexiDB::Connection::disconnect(), KexiDB::DriverManager::driver(), KexiDB::Object::error(), KexiDB::Driver::isFileDriver(), m_migrateData, and Kexi::ObjectStatus::setStatus(). |
|
|
Definition at line 86 of file keximigrate.h. Referenced by performImport(). |
|
|
Connect to source database (driver specific).
Implemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Referenced by performImport(). |
|
||||||||||||||||
|
Copy a table from source DB to target DB (driver specific)
Implemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Referenced by performImport(). |
|
|
Disconnect from source database (driver specific).
Implemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Referenced by performImport(). |
|
|
||||||||||||||||
|
Fetches single record from result obtained by running sqlStatement. firstRecord should be first initialized to true, so the method can run the query at first call and then set it will set firstRecord to false, so subsequent calls will only fetch records. On success the result is stored in data and true is returned, data is resized to appropriate size. cancelled is returned on EOF.
Reimplemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Definition at line 202 of file keximigrate.h. References cancelled. Referenced by performImport(). |
|
||||||||||||
|
Obviously, the driver should use the same units when reporting migration progress.
Reimplemented in KexiMigration::MySQLMigrate. Definition at line 231 of file keximigrate.h. |
|
|
Reimplemented in KexiMigration::MySQLMigrate. Definition at line 212 of file keximigrate.h. Referenced by performImport(). |
|
||||||||||||||||
|
Fetches maximum number from table tableName, column columnName into result. On success true is returned. If there is no records in the table, result is set to 0 and true is returned.
Definition at line 586 of file keximigrate.cpp. References drv_escapeIdentifier(), and drv_querySingleStringFromSQL(). |
|
||||||||||||||||
|
Fetches single string at column columnNumber from result obtained by running sqlStatement. On success the result is stored in string and true is returned.
Definition at line 606 of file keximigrate.cpp. References drv_queryStringListFromSQL(). Referenced by drv_queryMaxNumber(). |
|
||||||||||||||||||||
|
Fetches single string at column columnNumber for each record from result obtained by running sqlStatement. numRecords can be specified to limit number of records read. If numRecords is -1, all records are loaded. On success the result is stored in stringList and true is returned.
Reimplemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Definition at line 181 of file keximigrate.h. References cancelled. Referenced by drv_querySingleStringFromSQL(), and performImport(). |
|
||||||||||||
|
Read schema for a given table (driver specific).
Implemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. Referenced by performImport(). |
|
|
Get table names in source database (driver specific).
Implemented in KexiMigration::MySQLMigrate, and KexiMigration::PqxxMigrate. |
|
|
Checks if the source- and the destination databases are identical.
Definition at line 99 of file keximigrate.cpp. References KexiProjectData::connectionData(), KexiProjectData::databaseName(), KexiDB::ConnectionData::dbFileName(), KexiDB::ConnectionData::dbPath(), KexiMigration::Data::destination, KexiDB::ConnectionDataBase::driverName, KexiDB::ConnectionData::fileName(), KexiDB::ConnectionDataBase::hostName, m_migrateData, KexiMigration::Data::source, and KexiMigration::Data::sourceName. |
|
|
Definition at line 571 of file keximigrate.cpp. References ERR_INCOMPAT_DRIVER_VERSION, KexiDB::Object::setError(), versionMajor(), KexiMigration::versionMajor(), versionMinor(), and KexiMigration::versionMinor(). Referenced by KexiMigration::MigrateManagerInternal::driver(). |
|
|
Perform an export operation.
Definition at line 423 of file keximigrate.cpp. |
|
|
|
Referenced by updateProgress(). |
|
|
Returns true if the migration driver supports progress updates.
Definition at line 115 of file keximigrate.h. |
|
|
Definition at line 554 of file keximigrate.cpp. References m_propertyCaptions. |
|
|
Definition at line 564 of file keximigrate.cpp. References m_properties. |
|
|
Definition at line 549 of file keximigrate.cpp. References m_properties. |
|
|
Data Setup. Requires two connection objects, a name and a bool.
Definition at line 52 of file keximigrate.cpp. References m_migrateData. |
|
||||||||||||
|
Definition at line 559 of file keximigrate.cpp. References m_properties. |
|
|
Definition at line 478 of file keximigrate.cpp. References progressPercent(). Referenced by KexiMigration::PqxxMigrate::drv_copyTable(), KexiMigration::MySQLMigrate::drv_copyTable(), and performImport(). |
|
|
Prompt user to select a field type for unrecognized fields.
Definition at line 492 of file keximigrate.cpp. References KexiDB::Field::BigInteger, KexiDB::Field::BLOB, KexiDB::Field::Boolean, KexiDB::Field::Byte, KexiDB::Field::Date, KexiDB::Field::DateTime, KexiDB::Field::Double, KexiDB::Field::Float, KexiDB::Field::Integer, KexiDB::Field::LongText, KexiDB::Field::ShortInteger, KexiDB::Field::Text, and KexiDB::Field::Time. Referenced by KexiMigration::MySQLMigrate::type(). |
|
|
Referenced by isValid(). |
|
|
Referenced by isValid(). |
Friends And Related Function Documentation
|
|
Definition at line 289 of file keximigrate.h. |
Member Data Documentation
|
|
KexiDB driver. For instance, it is used for escaping identifiers.
Definition at line 261 of file keximigrate.h. |
|
|
Migrate Options.
Definition at line 245 of file keximigrate.h. Referenced by checkIfDestinationDatabaseOverwritingNeedsAccepting(), KexiMigration::PqxxMigrate::drv_connect(), KexiMigration::MySQLMigrate::drv_connect(), isSourceAndDestinationDataSourceTheSame(), performImport(), and setData(). |
|
|
Driver properties dictionary (indexed by name), useful for presenting properties to the user. Set available properties here in driver implementation. Definition at line 253 of file keximigrate.h. Referenced by propertyNames(), propertyValue(), and setPropertyValue(). |
|
|
i18n'd captions for properties. You do not need to set predefined properties' caption in driver implementation -it's done automatically. Definition at line 258 of file keximigrate.h. Referenced by propertyCaption(). |
The documentation for this class was generated from the following files:
