From b24a1b973b241e89046f526ab73d076314d1f830 Mon Sep 17 00:00:00 2001 From: Chris Dent Date: Sat, 9 Mar 2019 00:18:32 +0000 Subject: [PATCH] Do not separately configure logging for alembic Before this patch, when calling alembic commands (as done for db sync, online migrations and the automatic sync when [placement_database]/sync_on_startup is True) the env.py file would be evaluated, clobbering the logging configuration already set in the process. In the command line tools we didn't notice this because there's not much logging, but when it happens in the web-service process it means that while the process may start out logging at a DEBUG level (if you asked for that) it would then stop once the db sync happened. It turns out that we can remove the call to fileConfig in env.py and get rid of the associated configuration settings in alembic.ini we still get the behaviors we want from the placement-manage and alembic command line tools. Change-Id: Id9bc515cee71d629b605da015de39d1c9b0f8fc4 Story: 2005187 Task: 29932 --- placement/db/sqlalchemy/alembic.ini | 70 -------------------------- placement/db/sqlalchemy/alembic/env.py | 10 ---- 2 files changed, 80 deletions(-) diff --git a/placement/db/sqlalchemy/alembic.ini b/placement/db/sqlalchemy/alembic.ini index 5295b5bbf..5de6f5e9c 100644 --- a/placement/db/sqlalchemy/alembic.ini +++ b/placement/db/sqlalchemy/alembic.ini @@ -4,73 +4,3 @@ # path to migration scripts script_location = %(here)s/alembic -# template used to generate migration files -# file_template = %%(rev)s_%%(slug)s - -# timezone to use when rendering the date -# within the migration file as well as the filename. -# string value is passed to dateutil.tz.gettz() -# leave blank for localtime -# timezone = - -# max length of characters to apply to the -# "slug" field -#truncate_slug_length = 40 - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - -# set to 'true' to allow .pyc and .pyo files without -# a source .py file to be detected as revisions in the -# versions/ directory -# sourceless = false - -# version location specification; this defaults -# to alembic/versions. When using multiple version -# directories, initial revisions must be specified with --version-path -# version_locations = %(here)s/bar %(here)s/bat alembic/versions - -# the output encoding used when revision files -# are written from script.py.mako -# output_encoding = utf-8 - -# NOTE: this next line is commented out because it is set in -# CONF.placement_database.connection -#sqlalchemy.url = driver://user:pass@localhost/dbname - - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/placement/db/sqlalchemy/alembic/env.py b/placement/db/sqlalchemy/alembic/env.py index 8602bc855..ea6dd1991 100644 --- a/placement/db/sqlalchemy/alembic/env.py +++ b/placement/db/sqlalchemy/alembic/env.py @@ -12,7 +12,6 @@ from __future__ import with_statement -from logging.config import fileConfig from alembic import context from oslo_config import cfg @@ -23,15 +22,6 @@ from placement.db.sqlalchemy import models from placement import db_api as placement_db -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -fileConfig(config.config_file_name) - # add your model's MetaData object here # for 'autogenerate' support # from myapp import mymodel