4#include "Stroika/Foundation/StroikaPreComp.h"
12using namespace Stroika::Foundation::Database;
13using namespace Stroika::Foundation::Database::SQL;
14using namespace Stroika::Foundation::Debug;
27 for (
const auto& ti : tables) {
28 provisioners += TableProvisioner{
31 if (!existingVersion) {
32 conn.
Exec (Schema::StandardSQLStatements{ti}.CreateTable ());
42 for (
const auto& ti : tables) {
43 doesTableExist.
Reset ();
44 doesTableExist.
Bind (SQL::EngineProperties::kDoesTableExistParameterName, ti.fTableName);
46 ti.fProvisioner (conn, nullopt, targetDBVersion);
50 ti.fProvisioner (conn,
Common::Version{1, 0, Common::VersionStage::Alpha, 0}, targetDBVersion);
void ProvisionForVersion(SQL::Connection::Ptr conn, Common::Version targetDBVersion, const Traversal::Iterable< Schema::Table > &tables)
A Collection<T> is a container to manage an un-ordered collection of items, without equality defined ...
nonvirtual shared_ptr< const EngineProperties > GetEngineProperties() const
nonvirtual Statement mkStatement(const String &sql)
nonvirtual void Exec(const String &sql) const
nonvirtual void Reset()
resets the prepared statement back to the beginning of its program (this does NOT clear bindings)
nonvirtual optional< Row > GetNextRow()
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.