Scripts for upgrade/downgrade tuningbox DB added
Console scripts added to tuningbox entry points. DB migration scripts support external configuration, provided through variable TUNINGBOX_SETTINGS Change-Id: I86ddd32a1db351510ca742b69a0bc78a3d09e6a3 Closes-Bug: #1584668
This commit is contained in:
parent
5213a7d39a
commit
daa9536cd7
|
@ -56,3 +56,6 @@ fuelclient =
|
|||
config_get = tuning_box.fuelclient:Get
|
||||
config_set = tuning_box.fuelclient:Set
|
||||
config_override = tuning_box.fuelclient:Override
|
||||
console_scripts =
|
||||
tuningbox_db_upgrade = tuning_box.migration:upgrade
|
||||
tuningbox_db_downgrade = tuning_box.migration:downgrade
|
||||
|
|
|
@ -44,6 +44,8 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%defattr(-,root,root)
|
||||
%{python_sitelib}/tuning_box/
|
||||
%{python_sitelib}/tuning_box-%{version}*.egg-info/
|
||||
/usr/bin/tuningbox_db_downgrade
|
||||
/usr/bin/tuningbox_db_upgrade
|
||||
|
||||
%changelog
|
||||
* Fri Mar 18 2016 Oleg Gelbukh <ogelbukh@mirantis.com> 9.0.0
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from alembic import command as alembic_command
|
||||
from alembic import config as alembic_config
|
||||
|
||||
import tuning_box
|
||||
from tuning_box import app
|
||||
from tuning_box import db
|
||||
|
||||
|
||||
def get_alembic_config(engine):
|
||||
config = alembic_config.Config()
|
||||
config.set_main_option('sqlalchemy.url', str(engine.url))
|
||||
config.set_main_option(
|
||||
'script_location', tuning_box.get_migrations_dir())
|
||||
config.set_main_option('version_table', 'alembic_version')
|
||||
return config
|
||||
|
||||
|
||||
def upgrade():
|
||||
with app.build_app().app_context():
|
||||
config = get_alembic_config(db.db.engine)
|
||||
alembic_command.upgrade(config, 'head')
|
||||
|
||||
|
||||
def downgrade():
|
||||
with app.build_app().app_context():
|
||||
config = get_alembic_config(db.db.engine)
|
||||
alembic_command.downgrade(config, 'base')
|
|
@ -17,7 +17,6 @@ import os
|
|||
os.environ.setdefault("OS_TEST_DBAPI_ADMIN_CONNECTION", "sqlite:///testdb")
|
||||
|
||||
from alembic import command as alembic_command
|
||||
from alembic import config as alembic_config
|
||||
from alembic import script as alembic_script
|
||||
import flask
|
||||
from oslo_db.sqlalchemy import test_base
|
||||
|
@ -26,8 +25,8 @@ import sqlalchemy as sa
|
|||
import testscenarios
|
||||
from werkzeug import exceptions
|
||||
|
||||
import tuning_box
|
||||
from tuning_box import db
|
||||
from tuning_box import migration
|
||||
from tuning_box.tests import base
|
||||
|
||||
|
||||
|
@ -153,12 +152,7 @@ class _RealDBTest(testscenarios.WithScenarios,
|
|||
]
|
||||
|
||||
def get_alembic_config(self, engine):
|
||||
config = alembic_config.Config()
|
||||
config.set_main_option('sqlalchemy.url', str(engine.url))
|
||||
config.set_main_option(
|
||||
'script_location', tuning_box.get_migrations_dir())
|
||||
config.set_main_option('version_table', 'alembic_version')
|
||||
return config
|
||||
return migration.get_alembic_config(engine)
|
||||
|
||||
|
||||
class _RealDBPrefixedTest(base.PrefixedTestCaseMixin,
|
||||
|
|
Loading…
Reference in New Issue