diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2020-11-18 23:27:41 +1300 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2020-11-19 09:28:56 +1300 |
commit | d51b163e991f16acf2d542d99cbb2f2358feb9bc (patch) | |
tree | 49eb577a677a023c926c410aeba1cb07f9fe6dd6 /trove/db | |
parent | bf1ee5e8f29f286d2dee853db19912ea01ea4c78 (diff) | |
download | trove-d51b163e991f16acf2d542d99cbb2f2358feb9bc.tar.gz |
Support datastore version number for creating configuration
* Support "version_number" for creating configuration.
* Fixed a bug for deleting datastore version, the config parameters should be
deleted first.
* Support "--version" for trove-manage datastore_config_parameters
sub-commands.
Change-Id: Ieb0def81f2347c06a05eb354ad36b4fa807f7621
Story: 2008358
Task: 41264
Diffstat (limited to 'trove/db')
-rw-r--r-- | trove/db/sqlalchemy/migrate_repo/versions/044_remove_datastore_configuration_parameters_deleted.py | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/044_remove_datastore_configuration_parameters_deleted.py b/trove/db/sqlalchemy/migrate_repo/versions/044_remove_datastore_configuration_parameters_deleted.py index 7ce81d6a..7b34b000 100644 --- a/trove/db/sqlalchemy/migrate_repo/versions/044_remove_datastore_configuration_parameters_deleted.py +++ b/trove/db/sqlalchemy/migrate_repo/versions/044_remove_datastore_configuration_parameters_deleted.py @@ -11,19 +11,20 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. +import sqlalchemy +from sqlalchemy import schema -from sqlalchemy.schema import MetaData +from trove.db.sqlalchemy.migrate_repo import schema as trove_schema -from trove.db.sqlalchemy.migrate_repo.schema import Table - -meta = MetaData() +meta = schema.MetaData() def upgrade(migrate_engine): meta.bind = migrate_engine - ds_config_param = Table('datastore_configuration_parameters', meta, - autoload=True) + ds_config_param = trove_schema.Table('datastore_configuration_parameters', + meta, + autoload=True) # Remove records with deleted=1 if 'deleted' in ds_config_param.c: @@ -35,3 +36,32 @@ def upgrade(migrate_engine): if migrate_engine.name != "sqlite": ds_config_param.drop_column('deleted') ds_config_param.drop_column('deleted_at') + else: + # It is not possible to remove a column from a table in SQLite. + # SQLite is just for testing, so we re-create the table. + ds_config_param.drop() + meta.clear() + trove_schema.Table('datastore_versions', meta, autoload=True) + new_table = trove_schema.Table( + 'datastore_configuration_parameters', + meta, + schema.Column('id', trove_schema.String(36), + primary_key=True, nullable=False), + schema.Column('name', trove_schema.String(128), + primary_key=True, nullable=False), + schema.Column('datastore_version_id', trove_schema.String(36), + sqlalchemy.ForeignKey("datastore_versions.id"), + primary_key=True, nullable=False), + schema.Column('restart_required', trove_schema.Boolean(), + nullable=False, default=False), + schema.Column('max_size', trove_schema.String(40)), + schema.Column('min_size', trove_schema.String(40)), + schema.Column('data_type', trove_schema.String(128), + nullable=False), + schema.UniqueConstraint( + 'datastore_version_id', 'name', + name=('UQ_datastore_configuration_parameters_datastore_' + 'version_id_name') + ) + ) + trove_schema.create_tables([new_table]) |