aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-07-08 20:27:23 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-07-31 14:38:50 +0300
commitff4120eafcd5d2bcc92eac530692db389a211db7 (patch)
tree2884cf2989acbb60308efd93070b62b6838a3a6b
parent31cd1485b456331fca5778ab4bd4b54d00a93683 (diff)
Drop all database migrations to be backward compatible with 0.16.0 and above (two minor versions behind)
-rw-r--r--bpkg/buildfile3
-rw-r--r--bpkg/database.cxx142
-rw-r--r--bpkg/package.hxx2
-rw-r--r--bpkg/package.xml489
4 files changed, 205 insertions, 431 deletions
diff --git a/bpkg/buildfile b/bpkg/buildfile
index e91d0cb..0646f22 100644
--- a/bpkg/buildfile
+++ b/bpkg/buildfile
@@ -15,9 +15,6 @@ import libs = build2%lib{build2}
for m: bash bin c cc cli cxx in version
import libs += build2%lib{build2-$m}
-# @@ TMP we require libsqlite3 to be interface dependency of libbutl-odb only
-# for the database migrations to schema versions 13 and 14.
-#
import libs += libbpkg%lib{bpkg}
import libs += libbutl%lib{butl}
import libs += libbutl%lib{butl-odb}
diff --git a/bpkg/database.cxx b/bpkg/database.cxx
index 65e3af8..51bcd7f 100644
--- a/bpkg/database.cxx
+++ b/bpkg/database.cxx
@@ -3,8 +3,6 @@
#include <bpkg/database.hxx>
-#include <sqlite3.h> // @@ TMP sqlite3_libversion_number()
-
#include <map>
#include <odb/schema-catalog.hxx>
@@ -58,99 +56,15 @@ namespace bpkg
// NOTE: remember to qualify table/index names with \"main\". if using
// native statements.
//
+#if 0
template <odb::schema_version v>
using migration_entry = odb::data_migration_entry<v, DB_SCHEMA_VERSION_BASE>;
- // @@ Since there is no proper support for dropping table columns not in
- // SQLite prior to 3.35.5 nor in ODB, we will drop the
- // available_package_dependency_alternatives.dep_* columns manually. We,
- // however, cannot do it here since ODB will try to set the dropped
- // column values to NULL at the end of migration. Thus, we will do it
- // ad hoc after the below schema_catalog::migrate() call.
- //
- // NOTE: remove the mentioned ad hoc migration when removing this
- // function.
- //
- static const migration_entry<13>
- migrate_v13 ([] (odb::database& db)
- {
- // Note that
- // available_package_dependency_alternative_dependencies.alternative_index
- // is copied from available_package_dependency_alternatives.index and
- // available_package_dependency_alternative_dependencies.index is set to 0.
- //
- db.execute (
- "INSERT INTO \"main\".\"available_package_dependency_alternative_dependencies\" "
- "(\"name\", "
- "\"version_epoch\", "
- "\"version_canonical_upstream\", "
- "\"version_canonical_release\", "
- "\"version_revision\", "
- "\"version_iteration\", "
- "\"dependency_index\", "
- "\"alternative_index\", "
- "\"index\", "
- "\"dep_name\", "
- "\"dep_min_version_epoch\", "
- "\"dep_min_version_canonical_upstream\", "
- "\"dep_min_version_canonical_release\", "
- "\"dep_min_version_revision\", "
- "\"dep_min_version_iteration\", "
- "\"dep_min_version_upstream\", "
- "\"dep_min_version_release\", "
- "\"dep_max_version_epoch\", "
- "\"dep_max_version_canonical_upstream\", "
- "\"dep_max_version_canonical_release\", "
- "\"dep_max_version_revision\", "
- "\"dep_max_version_iteration\", "
- "\"dep_max_version_upstream\", "
- "\"dep_max_version_release\", "
- "\"dep_min_open\", "
- "\"dep_max_open\") "
- "SELECT "
- "\"name\", "
- "\"version_epoch\", "
- "\"version_canonical_upstream\", "
- "\"version_canonical_release\", "
- "\"version_revision\", "
- "\"version_iteration\", "
- "\"dependency_index\", "
- "\"index\", "
- "0, "
- "\"dep_name\", "
- "\"dep_min_version_epoch\", "
- "\"dep_min_version_canonical_upstream\", "
- "\"dep_min_version_canonical_release\", "
- "\"dep_min_version_revision\", "
- "\"dep_min_version_iteration\", "
- "\"dep_min_version_upstream\", "
- "\"dep_min_version_release\", "
- "\"dep_max_version_epoch\", "
- "\"dep_max_version_canonical_upstream\", "
- "\"dep_max_version_canonical_release\", "
- "\"dep_max_version_revision\", "
- "\"dep_max_version_iteration\", "
- "\"dep_max_version_upstream\", "
- "\"dep_max_version_release\", "
- "\"dep_min_open\", "
- "\"dep_max_open\" "
- "FROM \"main\".\"available_package_dependency_alternatives\"");
- });
-
- // @@ Since there is no proper support for dropping table columns not in
- // SQLite prior to 3.35.5 nor in ODB, we will drop the
- // available_package_dependencies.conditional column manually. We,
- // however, cannot do it here since ODB will try to set the dropped
- // column values to NULL at the end of migration. Thus, we will do it
- // ad hoc after the below schema_catalog::migrate() call.
- //
- // NOTE: remove the mentioned ad hoc migration when removing this
- // function.
- //
- static const migration_entry<14>
- migrate_v14 ([] (odb::database&)
+ static const migration_entry<27>
+ migrate_v27 ([] (odb::database&)
{
});
+#endif
static inline path
cfg_path (const dir_path& d, bool create)
@@ -454,54 +368,6 @@ namespace bpkg
//
schema_catalog::migrate (*this);
- // Note that the potential data corruption with `DROP COLUMN` is fixed
- // in 3.35.5.
- //
- // @@ TMP Get rid of manual column dropping when ODB starts supporting
- // that properly. Not doing so will result in failure of the below
- // queries.
- //
- if (sqlite3_libversion_number () >= 3035005)
- {
- auto drop = [this] (const char* table, const char* column)
- {
- execute (std::string ("ALTER TABLE \"main\".") + table +
- " DROP COLUMN \"" + column + '"');
- };
-
- // @@ TMP See migrate_v13() for details.
- //
- if (sv < 13)
- {
- const char* cs[] = {"dep_name",
- "dep_min_version_epoch",
- "dep_min_version_canonical_upstream",
- "dep_min_version_canonical_release",
- "dep_min_version_revision",
- "dep_min_version_iteration",
- "dep_min_version_upstream",
- "dep_min_version_release",
- "dep_max_version_epoch",
- "dep_max_version_canonical_upstream",
- "dep_max_version_canonical_release",
- "dep_max_version_revision",
- "dep_max_version_iteration",
- "dep_max_version_upstream",
- "dep_max_version_release",
- "dep_min_open",
- "dep_max_open",
- nullptr};
-
- for (const char** c (cs); *c != nullptr; ++c)
- drop ("available_package_dependency_alternatives", *c);
- }
-
- // @@ TMP See migrate_v14() for details.
- //
- if (sv < 14)
- drop ("available_package_dependencies", "conditional");
- }
-
for (auto& c: query<configuration> (odb::query<configuration>::id != 0))
{
dir_path d (c.effective_path (config));
diff --git a/bpkg/package.hxx b/bpkg/package.hxx
index 400519a..8fe448c 100644
--- a/bpkg/package.hxx
+++ b/bpkg/package.hxx
@@ -30,7 +30,7 @@
// migration is no longer supported (i.e., the current and base schema
// versions are the same).
//
-#define DB_SCHEMA_VERSION_BASE 12
+#define DB_SCHEMA_VERSION_BASE 23
#pragma db model version(DB_SCHEMA_VERSION_BASE, 26, closed)
diff --git a/bpkg/package.xml b/bpkg/package.xml
index 8020ff3..f001712 100644
--- a/bpkg/package.xml
+++ b/bpkg/package.xml
@@ -35,277 +35,7 @@
</alter-table>
</changeset>
- <changeset version="23">
- <alter-table name="main.available_package">
- <add-column name="type" type="TEXT" null="true"/>
- </alter-table>
- <add-table name="main.available_package_languages" kind="container">
- <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="version_epoch" type="INTEGER" null="true"/>
- <column name="version_canonical_upstream" type="TEXT" null="true"/>
- <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
- <column name="version_revision" type="INTEGER" null="true"/>
- <column name="version_iteration" type="INTEGER" null="true"/>
- <column name="index" type="INTEGER" null="true"/>
- <column name="language_name" type="TEXT" null="true"/>
- <column name="language_impl" type="INTEGER" null="true"/>
- <foreign-key name="object_id_fk" on-delete="CASCADE">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- <references table="main.available_package">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </references>
- </foreign-key>
- <index name="available_package_languages_object_id_i">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </index>
- <index name="available_package_languages_index_i">
- <column name="index"/>
- </index>
- </add-table>
- </changeset>
-
- <changeset version="22">
- <alter-table name="main.available_package">
- <add-column name="upstream_version" type="TEXT" null="true"/>
- <add-column name="project" type="TEXT" null="true" options="COLLATE NOCASE"/>
- </alter-table>
- </changeset>
-
- <changeset version="21">
- <add-table name="main.available_package_distribution_values" kind="container">
- <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="version_epoch" type="INTEGER" null="true"/>
- <column name="version_canonical_upstream" type="TEXT" null="true"/>
- <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
- <column name="version_revision" type="INTEGER" null="true"/>
- <column name="version_iteration" type="INTEGER" null="true"/>
- <column name="index" type="INTEGER" null="true"/>
- <column name="dist_name" type="TEXT" null="true"/>
- <column name="dist_value" type="TEXT" null="true"/>
- <foreign-key name="object_id_fk" on-delete="CASCADE">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- <references table="main.available_package">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </references>
- </foreign-key>
- <index name="available_package_distribution_values_object_id_i">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </index>
- <index name="available_package_distribution_values_index_i">
- <column name="index"/>
- </index>
- </add-table>
- </changeset>
-
- <changeset version="20">
- <alter-table name="main.available_package">
- <add-column name="alt_naming" type="INTEGER" null="true" default="0"/>
- </alter-table>
- <add-table name="main.available_package_buildfiles" kind="container">
- <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="version_epoch" type="INTEGER" null="true"/>
- <column name="version_canonical_upstream" type="TEXT" null="true"/>
- <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
- <column name="version_revision" type="INTEGER" null="true"/>
- <column name="version_iteration" type="INTEGER" null="true"/>
- <column name="index" type="INTEGER" null="true"/>
- <column name="path" type="TEXT" null="true"/>
- <column name="content" type="TEXT" null="true"/>
- <foreign-key name="object_id_fk" on-delete="CASCADE">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- <references table="main.available_package">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </references>
- </foreign-key>
- <index name="available_package_buildfiles_object_id_i">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </index>
- <index name="available_package_buildfiles_index_i">
- <column name="index"/>
- </index>
- </add-table>
- </changeset>
-
- <changeset version="19">
- <alter-table name="main.selected_package_prerequisites">
- <add-column name="config_dependency_index" type="INTEGER" null="true" default="0"/>
- <add-column name="config_alternative_index" type="INTEGER" null="true" default="0"/>
- </alter-table>
- </changeset>
-
- <changeset version="18">
- <add-table name="main.selected_package_config_variables" kind="container">
- <column name="package" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="index" type="INTEGER" null="true"/>
- <column name="name" type="TEXT" null="true"/>
- <column name="source" type="TEXT" null="true"/>
- <foreign-key name="package_fk" on-delete="CASCADE">
- <column name="package"/>
- <references table="main.selected_package">
- <column name="name"/>
- </references>
- </foreign-key>
- <index name="selected_package_config_variables_package_i">
- <column name="package"/>
- </index>
- <index name="selected_package_config_variables_index_i">
- <column name="index"/>
- </index>
- </add-table>
- </changeset>
-
- <changeset version="17">
- <alter-table name="main.selected_package">
- <add-column name="buildfiles_checksum" type="TEXT" null="true"/>
- </alter-table>
- </changeset>
-
- <changeset version="16">
- <alter-table name="main.available_package_tests">
- <add-column name="test_reflect" type="TEXT" null="true"/>
- </alter-table>
- </changeset>
-
- <changeset version="15">
- <alter-table name="main.available_package">
- <add-column name="bootstrap_build" type="TEXT" null="true" default="''"/>
- <add-column name="root_build" type="TEXT" null="true"/>
- </alter-table>
- </changeset>
-
- <changeset version="14">
- <alter-table name="main.available_package_dependencies">
- <drop-column name="conditional"/>
- </alter-table>
- <alter-table name="main.available_package_dependency_alternatives">
- <add-column name="reflect" type="TEXT" null="true"/>
- <add-column name="prefer" type="TEXT" null="true"/>
- <add-column name="accept" type="TEXT" null="true"/>
- <add-column name="require" type="TEXT" null="true"/>
- </alter-table>
- </changeset>
-
- <changeset version="13">
- <alter-table name="main.available_package_dependency_alternatives">
- <add-column name="enable" type="TEXT" null="true"/>
- <drop-column name="dep_name"/>
- <drop-column name="dep_min_version_epoch"/>
- <drop-column name="dep_min_version_canonical_upstream"/>
- <drop-column name="dep_min_version_canonical_release"/>
- <drop-column name="dep_min_version_revision"/>
- <drop-column name="dep_min_version_iteration"/>
- <drop-column name="dep_min_version_upstream"/>
- <drop-column name="dep_min_version_release"/>
- <drop-column name="dep_max_version_epoch"/>
- <drop-column name="dep_max_version_canonical_upstream"/>
- <drop-column name="dep_max_version_canonical_release"/>
- <drop-column name="dep_max_version_revision"/>
- <drop-column name="dep_max_version_iteration"/>
- <drop-column name="dep_max_version_upstream"/>
- <drop-column name="dep_max_version_release"/>
- <drop-column name="dep_min_open"/>
- <drop-column name="dep_max_open"/>
- </alter-table>
- <add-table name="main.available_package_dependency_alternative_dependencies" kind="container">
- <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="version_epoch" type="INTEGER" null="true"/>
- <column name="version_canonical_upstream" type="TEXT" null="true"/>
- <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
- <column name="version_revision" type="INTEGER" null="true"/>
- <column name="version_iteration" type="INTEGER" null="true"/>
- <column name="dependency_index" type="INTEGER" null="true"/>
- <column name="alternative_index" type="INTEGER" null="true"/>
- <column name="index" type="INTEGER" null="true"/>
- <column name="dep_name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="dep_min_version_epoch" type="INTEGER" null="true"/>
- <column name="dep_min_version_canonical_upstream" type="TEXT" null="true"/>
- <column name="dep_min_version_canonical_release" type="TEXT" null="true"/>
- <column name="dep_min_version_revision" type="INTEGER" null="true"/>
- <column name="dep_min_version_iteration" type="INTEGER" null="true"/>
- <column name="dep_min_version_upstream" type="TEXT" null="true"/>
- <column name="dep_min_version_release" type="TEXT" null="true"/>
- <column name="dep_max_version_epoch" type="INTEGER" null="true"/>
- <column name="dep_max_version_canonical_upstream" type="TEXT" null="true"/>
- <column name="dep_max_version_canonical_release" type="TEXT" null="true"/>
- <column name="dep_max_version_revision" type="INTEGER" null="true"/>
- <column name="dep_max_version_iteration" type="INTEGER" null="true"/>
- <column name="dep_max_version_upstream" type="TEXT" null="true"/>
- <column name="dep_max_version_release" type="TEXT" null="true"/>
- <column name="dep_min_open" type="INTEGER" null="true"/>
- <column name="dep_max_open" type="INTEGER" null="true"/>
- <foreign-key name="object_id_fk" on-delete="CASCADE">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- <references table="main.available_package">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </references>
- </foreign-key>
- <index name="available_package_dependency_alternative_dependencies_object_id_i">
- <column name="name"/>
- <column name="version_epoch"/>
- <column name="version_canonical_upstream"/>
- <column name="version_canonical_release"/>
- <column name="version_revision"/>
- <column name="version_iteration"/>
- </index>
- </add-table>
- </changeset>
-
- <model version="12">
+ <model version="23">
<table name="main.repository_fragment" kind="object">
<column name="name" type="TEXT" null="true"/>
<column name="url" type="TEXT" null="true"/>
@@ -396,6 +126,12 @@
<column name="version_upstream" type="TEXT" null="true"/>
<column name="version_release" type="TEXT" null="true"/>
<column name="sha256sum" type="TEXT" null="true"/>
+ <column name="bootstrap_build" type="TEXT" null="true" default="''"/>
+ <column name="root_build" type="TEXT" null="true"/>
+ <column name="alt_naming" type="INTEGER" null="true" default="0"/>
+ <column name="upstream_version" type="TEXT" null="true"/>
+ <column name="project" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="type" type="TEXT" null="true"/>
<primary-key>
<column name="name"/>
<column name="version_epoch"/>
@@ -453,7 +189,6 @@
<column name="version_revision" type="INTEGER" null="true"/>
<column name="version_iteration" type="INTEGER" null="true"/>
<column name="index" type="INTEGER" null="true"/>
- <column name="conditional" type="INTEGER" null="true"/>
<column name="buildtime" type="INTEGER" null="true"/>
<column name="comment" type="TEXT" null="true"/>
<column name="type" type="TEXT" null="true"/>
@@ -494,23 +229,11 @@
<column name="version_iteration" type="INTEGER" null="true"/>
<column name="dependency_index" type="INTEGER" null="true"/>
<column name="index" type="INTEGER" null="true"/>
- <column name="dep_name" type="TEXT" null="true" options="COLLATE NOCASE"/>
- <column name="dep_min_version_epoch" type="INTEGER" null="true"/>
- <column name="dep_min_version_canonical_upstream" type="TEXT" null="true"/>
- <column name="dep_min_version_canonical_release" type="TEXT" null="true"/>
- <column name="dep_min_version_revision" type="INTEGER" null="true"/>
- <column name="dep_min_version_iteration" type="INTEGER" null="true"/>
- <column name="dep_min_version_upstream" type="TEXT" null="true"/>
- <column name="dep_min_version_release" type="TEXT" null="true"/>
- <column name="dep_max_version_epoch" type="INTEGER" null="true"/>
- <column name="dep_max_version_canonical_upstream" type="TEXT" null="true"/>
- <column name="dep_max_version_canonical_release" type="TEXT" null="true"/>
- <column name="dep_max_version_revision" type="INTEGER" null="true"/>
- <column name="dep_max_version_iteration" type="INTEGER" null="true"/>
- <column name="dep_max_version_upstream" type="TEXT" null="true"/>
- <column name="dep_max_version_release" type="TEXT" null="true"/>
- <column name="dep_min_open" type="INTEGER" null="true"/>
- <column name="dep_max_open" type="INTEGER" null="true"/>
+ <column name="enable" type="TEXT" null="true"/>
+ <column name="reflect" type="TEXT" null="true"/>
+ <column name="prefer" type="TEXT" null="true"/>
+ <column name="accept" type="TEXT" null="true"/>
+ <column name="require" type="TEXT" null="true"/>
<foreign-key name="object_id_fk" on-delete="CASCADE">
<column name="name"/>
<column name="version_epoch"/>
@@ -557,6 +280,7 @@
<column name="purge_src" type="INTEGER" null="true"/>
<column name="manifest_checksum" type="TEXT" null="true"/>
<column name="out_root" type="TEXT" null="true"/>
+ <column name="buildfiles_checksum" type="TEXT" null="true"/>
<primary-key>
<column name="name"/>
</primary-key>
@@ -581,6 +305,8 @@
<column name="min_open" type="INTEGER" null="true"/>
<column name="max_open" type="INTEGER" null="true"/>
<column name="configuration" type="TEXT" null="true"/>
+ <column name="config_dependency_index" type="INTEGER" null="true" default="0"/>
+ <column name="config_alternative_index" type="INTEGER" null="true" default="0"/>
<foreign-key name="package_fk" on-delete="CASCADE">
<column name="package"/>
<references table="main.selected_package">
@@ -630,6 +356,7 @@
<column name="test_max_open" type="INTEGER" null="true"/>
<column name="test_type" type="TEXT" null="true"/>
<column name="test_buildtime" type="INTEGER" null="true" default="0"/>
+ <column name="test_reflect" type="TEXT" null="true"/>
<foreign-key name="object_id_fk" on-delete="CASCADE">
<column name="name"/>
<column name="version_epoch"/>
@@ -678,5 +405,189 @@
<column name="path"/>
</index>
</table>
+ <table name="main.available_package_dependency_alternative_dependencies" kind="container">
+ <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="version_epoch" type="INTEGER" null="true"/>
+ <column name="version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
+ <column name="version_revision" type="INTEGER" null="true"/>
+ <column name="version_iteration" type="INTEGER" null="true"/>
+ <column name="dependency_index" type="INTEGER" null="true"/>
+ <column name="alternative_index" type="INTEGER" null="true"/>
+ <column name="index" type="INTEGER" null="true"/>
+ <column name="dep_name" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="dep_min_version_epoch" type="INTEGER" null="true"/>
+ <column name="dep_min_version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="dep_min_version_canonical_release" type="TEXT" null="true"/>
+ <column name="dep_min_version_revision" type="INTEGER" null="true"/>
+ <column name="dep_min_version_iteration" type="INTEGER" null="true"/>
+ <column name="dep_min_version_upstream" type="TEXT" null="true"/>
+ <column name="dep_min_version_release" type="TEXT" null="true"/>
+ <column name="dep_max_version_epoch" type="INTEGER" null="true"/>
+ <column name="dep_max_version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="dep_max_version_canonical_release" type="TEXT" null="true"/>
+ <column name="dep_max_version_revision" type="INTEGER" null="true"/>
+ <column name="dep_max_version_iteration" type="INTEGER" null="true"/>
+ <column name="dep_max_version_upstream" type="TEXT" null="true"/>
+ <column name="dep_max_version_release" type="TEXT" null="true"/>
+ <column name="dep_min_open" type="INTEGER" null="true"/>
+ <column name="dep_max_open" type="INTEGER" null="true"/>
+ <foreign-key name="object_id_fk" on-delete="CASCADE">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ <references table="main.available_package">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </references>
+ </foreign-key>
+ <index name="available_package_dependency_alternative_dependencies_object_id_i">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </index>
+ </table>
+ <table name="main.selected_package_config_variables" kind="container">
+ <column name="package" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="index" type="INTEGER" null="true"/>
+ <column name="name" type="TEXT" null="true"/>
+ <column name="source" type="TEXT" null="true"/>
+ <foreign-key name="package_fk" on-delete="CASCADE">
+ <column name="package"/>
+ <references table="main.selected_package">
+ <column name="name"/>
+ </references>
+ </foreign-key>
+ <index name="selected_package_config_variables_package_i">
+ <column name="package"/>
+ </index>
+ <index name="selected_package_config_variables_index_i">
+ <column name="index"/>
+ </index>
+ </table>
+ <table name="main.available_package_buildfiles" kind="container">
+ <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="version_epoch" type="INTEGER" null="true"/>
+ <column name="version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
+ <column name="version_revision" type="INTEGER" null="true"/>
+ <column name="version_iteration" type="INTEGER" null="true"/>
+ <column name="index" type="INTEGER" null="true"/>
+ <column name="path" type="TEXT" null="true"/>
+ <column name="content" type="TEXT" null="true"/>
+ <foreign-key name="object_id_fk" on-delete="CASCADE">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ <references table="main.available_package">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </references>
+ </foreign-key>
+ <index name="available_package_buildfiles_object_id_i">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </index>
+ <index name="available_package_buildfiles_index_i">
+ <column name="index"/>
+ </index>
+ </table>
+ <table name="main.available_package_distribution_values" kind="container">
+ <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="version_epoch" type="INTEGER" null="true"/>
+ <column name="version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
+ <column name="version_revision" type="INTEGER" null="true"/>
+ <column name="version_iteration" type="INTEGER" null="true"/>
+ <column name="index" type="INTEGER" null="true"/>
+ <column name="dist_name" type="TEXT" null="true"/>
+ <column name="dist_value" type="TEXT" null="true"/>
+ <foreign-key name="object_id_fk" on-delete="CASCADE">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ <references table="main.available_package">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </references>
+ </foreign-key>
+ <index name="available_package_distribution_values_object_id_i">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </index>
+ <index name="available_package_distribution_values_index_i">
+ <column name="index"/>
+ </index>
+ </table>
+ <table name="main.available_package_languages" kind="container">
+ <column name="name" type="TEXT" null="true" options="COLLATE NOCASE"/>
+ <column name="version_epoch" type="INTEGER" null="true"/>
+ <column name="version_canonical_upstream" type="TEXT" null="true"/>
+ <column name="version_canonical_release" type="TEXT" null="true" options="COLLATE BINARY"/>
+ <column name="version_revision" type="INTEGER" null="true"/>
+ <column name="version_iteration" type="INTEGER" null="true"/>
+ <column name="index" type="INTEGER" null="true"/>
+ <column name="language_name" type="TEXT" null="true"/>
+ <column name="language_impl" type="INTEGER" null="true"/>
+ <foreign-key name="object_id_fk" on-delete="CASCADE">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ <references table="main.available_package">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </references>
+ </foreign-key>
+ <index name="available_package_languages_object_id_i">
+ <column name="name"/>
+ <column name="version_epoch"/>
+ <column name="version_canonical_upstream"/>
+ <column name="version_canonical_release"/>
+ <column name="version_revision"/>
+ <column name="version_iteration"/>
+ </index>
+ <index name="available_package_languages_index_i">
+ <column name="index"/>
+ </index>
+ </table>
</model>
</changelog>