![]() |
Qore Schema Module Reference
1.4
|
this class extends Schema::AbstractSchema by providing version logic based on a schema version string contained within the schema itself More...
Public Member Methods | |
constructor (Qore::SQL::AbstractDatasource ds, *string dts, *string its, *hash opts) | |
creates the object based on the arguments giving the location of the schema More... | |
![]() | |
int | align (bool force=False, int verbose=0, bool do_msgs=True) |
executes a schema alignment action on the database with the current schema template More... | |
constructor (Qore::SQL::AbstractDatasource ds, *hash< SchemaOptionInfo > opts) | |
creates the object from the arguments More... | |
constructor (Qore::SQL::AbstractDatasource ds, *string dts, *string its, *hash opts) | |
creates the object from the arguments More... | |
drop (bool force=False, int verbose=0, bool do_msgs=True) | |
executes a schema drop operation in the database | |
*hash< auto > | getColumnOptions () |
returns column options More... | |
*hash< auto > | getCreateOnlyReferenceData () |
returns a hash of "create-only reference data", describing data that is written to the table when the table is created More... | |
*hash< auto > | getCreationOptions () |
returns schema creation options More... | |
SqlUtil::AbstractDatabase | getDatabase () |
returns the AbstractDatabase object used for the schema | |
Qore::SQL::AbstractDatasource | getDatasource () |
returns the datasource used for the schema | |
*hash< auto > | getFunctions () |
returns function definitions More... | |
*hash< auto > | getIndexOptions () |
returns index options More... | |
*hash< auto > | getInsertOnlyReferenceData () |
returns a hash of "create-only reference data", describing data that will only be inserted if missing, otherwise existing rows with changed data are left unchanged More... | |
*hash< auto > | getMaterializedViews () |
returns materialized view definitions More... | |
string | getName () |
returns the name of the schema | |
*hash< auto > | getPackages () |
returns (Oracle) package definitions More... | |
*hash< auto > | getProcedures () |
returns stored procedure definitions More... | |
*hash< auto > | getReferenceDataHash () |
returns a hash of "normal reference data", describing data that must appear in the target table, however additional rows are also acceptable More... | |
*hash< auto > | getSequences () |
returns sequence definitions More... | |
*hash< auto > | getStrictReferenceDataHash () |
returns a hash of "strict reference data", describing the only data that can appear in the target table More... | |
*hash< auto > | getTables () |
returns table definitions More... | |
*hash< auto > | getTypes () |
returns type definitions More... | |
string | getVersion () |
returns the version of the schema | |
log (string fmt) | |
outputs a log message More... | |
logpf (string fmt) | |
outputs a log message prefixed with the schema name More... | |
logProgress (string str) | |
outputs a log message without any newline More... | |
Private Member Methods | |
bool | checkDowngrade (string current_version) |
this method is called if the current schema version is greater than the target version; returns True if the schema can be downgraded | |
bool | checkDropSchema (bool force) |
this method returns True if the schema can be dropped | |
bool | checkUpdateSchema (bool force, reference< hash< auto >> initial_schema_info) |
this method returns True if the schema can be updated | |
bool | checkUpgrade (string current_version) |
this method is called if the current schema version is less than the target version; returns True if the schema can be updated | |
*softstring | getSchemaVersion () |
returns the existing schema version or NOTHING if not present | |
string | getVersionColumn () |
returns the name of the column holding the schema version string by calling getVersionColumnImpl() More... | |
abstract string | getVersionColumnImpl () |
returns the name of the column holding the schema version string | |
string | getVersionTable () |
returns the name of the table holding the schema version string by calling getVersionTableImpl() More... | |
abstract string | getVersionTableImpl () |
returns the name of the table holding the schema version string | |
hash | getVersionWhere () |
returns the where clause hash defining the row where the schema version string is located by calling getVersionWhereImpl() More... | |
abstract hash | getVersionWhereImpl () |
returns the where clause hash defining the row where the schema version string is located | |
![]() | |
bool | checkDropSchema (bool force) |
this method returns True if the schema can be dropped | |
bool | checkExistence () |
returns True if the method can detect that DB objects defined in the schema exist in the database More... | |
bool | checkFirstTimeInstall () |
returns True if checkExistence() returns False | |
bool | checkUpdateSchema (bool force, reference< hash< auto >> initial_schema_info) |
this method returns True if the schema can be updated | |
doPostAlignment (Tables table_cache, bool first_time_install, *hash< auto > initial_schema_info) | |
this method is called after schema structural alignment has been executed but before schema reference data management | |
doPostAlignment (Tables table_cache, bool first_time_install, *hash< auto > initial_schema_info, int verbose) | |
this method is called after schema structural alignment has been executed but before schema reference data management | |
doTable (AbstractTable table, list rows, int upsert_strategy, bool delete_others, int verbose, reference< hash > sh) | |
this method is called to perform schema reference data managment on the given table with the given data | |
*hash< auto > | getColumnOptionsImpl () |
returns column options More... | |
*hash< auto > | getCreateOnlyReferenceDataImpl () |
returns a hash of "create-only reference data", describing data that is written to the table when the table is created More... | |
*hash< auto > | getFunctionsImpl () |
returns function definitions More... | |
*hash< auto > | getGenericOptionsImpl () |
returns schema creation options More... | |
*hash< auto > | getIndexOptionsImpl () |
returns index options More... | |
*hash< auto > | getInsertOnlyReferenceDataImpl () |
returns a hash of "insert-only reference data", describing data that will only be inserted if missing, otherwise existing rows with changed data are left unchanged More... | |
*hash< auto > | getMaterializedViewsImpl () |
returns materialized view definitions More... | |
abstract string | getNameImpl () |
returns the name of the schema | |
*hash< auto > | getPackagesImpl () |
returns (Oracle) package definitions More... | |
*hash< auto > | getProceduresImpl () |
returns stored procedure definitions More... | |
*hash< auto > | getReferenceDataHashImpl () |
returns a hash of "normal reference data", describing data that must appear in the target table, however additional rows are also acceptable More... | |
*hash< auto > | getSequencesImpl () |
returns sequence definitions More... | |
*hash< auto > | getStrictReferenceDataHashImpl () |
returns a hash of "strict reference data", describing the only data that can appear in the target table More... | |
*hash< auto > | getTablesImpl () |
returns table definitions More... | |
*hash< auto > | getTypesImpl () |
returns type definitions More... | |
int | getUpsertStrategy (bool first_time_install) |
this method is called to return the upsert strategy before schema reference data management | |
abstract string | getVersionImpl () |
returns the version of the schema | |
init (Qore::SQL::AbstractDatasource ds, *hash< SchemaOptionInfo > opts) | |
shared constructor initialization | |
postDataActions (bool first_time_install) | |
this method is called after schema reference data has been managed | |
postDataActions (Tables table_cache, bool first_time_install, *hash< auto > initial_schema_info, int verbose) | |
this method is called after schema reference data has been managed | |
Private Attributes | |
string | version_column |
the name of the column containing the version string | |
string | version_table |
the name of the table containing the version string | |
hash | version_where |
a where clause hash defining the row where the schema version string is located | |
![]() | |
*hash | all_options |
combined creation and column options | |
hash | callback_opts |
callback options plus all options | |
*hash | column_options |
column options, as provided by getColumnOptions() | |
*hash | creation_options |
creation options, as provided by getCreationOptions() | |
*string | data_ts |
explicit data tablespace name | |
SqlUtil::Database | db |
the Database object for the schema | |
string | drv |
the name of the database driver | |
Qore::SQL::AbstractDatasource | ds |
the datasource for the schema | |
*hash | index_options |
index options, as provided by getIndexOptions() | |
*string | index_ts |
explicit index tablespace name | |
code | info_callback |
the info callback for schema operations; can be used for explicit logging | |
string | name |
the name of the schema | |
hash | pure_callback_opts |
just callback options | |
hash | schema |
the schema template, as assembled from method callbacks providing schema element definitions | |
string | version |
the version of the schema | |
Additional Inherited Members | |
![]() | |
static hash | combineOptions (*hash h) |
combines option hashes into a single target option hash | |
static list | getRows (*softlist l) |
returns a list of hashes from a list of lists where the first list element in the top-level list is a list of column names, and subsequent lists are column values More... | |
this class extends Schema::AbstractSchema by providing version logic based on a schema version string contained within the schema itself
the location of the version string is defined by the following abstract methods that must be reimplemented in subclasses:
Schema::AbstractVersionedSchema::constructor | ( | Qore::SQL::AbstractDatasource | ds, |
*string | dts, | ||
*string | its, | ||
*hash | opts | ||
) |
creates the object based on the arguments giving the location of the schema
ds | the datasource for the schema |
dts | an optional data tablespace name for the schema |
its | an optional index tablespace name for the schema |
opts | options for SqlUtil::Database::constructor() |
|
private |
returns the name of the column holding the schema version string by calling getVersionColumnImpl()
this function wraps getVersionColumnImpl(); for forwards-compatibility, do not override this method in subclasses, instead re-implement getVersionColumnImpl()
|
private |
returns the name of the table holding the schema version string by calling getVersionTableImpl()
this function wraps getVersionTableImpl(); for forwards-compatibility, do not override this method in subclasses, instead re-implement getVersionTableImpl()
|
private |
returns the where clause hash defining the row where the schema version string is located by calling getVersionWhereImpl()
this function wraps getVersionWhereImpl(); for forwards-compatibility, do not override this method in subclasses, instead re-implement getVersionWhereImpl()