Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-Flask-Migrate for
openSUSE:Factory checked in at 2021-07-23 23:41:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Flask-Migrate (Old)
and /work/SRC/openSUSE:Factory/.python-Flask-Migrate.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-Flask-Migrate"
Fri Jul 23 23:41:13 2021 rev:7 rq:907916 version:3.0.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-Flask-Migrate/python-Flask-Migrate.changes
2020-03-23 12:53:15.464058040 +0100
+++
/work/SRC/openSUSE:Factory/.python-Flask-Migrate.new.1899/python-Flask-Migrate.changes
2021-07-23 23:41:34.957802905 +0200
@@ -1,0 +2,25 @@
+Wed Jul 21 07:13:43 UTC 2021 - Antonio Larrosa <[email protected]>
+
+- Update to 3.0.1:
+ * Add support for Alchemical in addition to Flask-SQLAlchemy
+ * Remove Flask-Script references from the documentation
+
+- Changes from 3.0.0:
+ * Remove support for Flask-Script
+ * Use unittest testrunner
+ * Remove dependency on six package
+ * Added sphinx build files to .gitignore file
+ * Fix Sphinx warning
+
+- Changes from 2.7.0:
+ * Reuse engine from Flask-SQLAlchemy
+ * Update logging configuration to include Flask-Migrate's logger
+
+- Changes from 2.6.0:
+ * Removed deprecated --head-only option
+ * Initialize logger with a name
+ * Move import to the top in env.py file to avoid linter warnings
+ * Add a note to the documentation regarding logging
+ * Move builds to GitHub actions
+
+-------------------------------------------------------------------
Old:
----
Flask-Migrate-2.5.3.tar.gz
New:
----
Flask-Migrate-3.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-Flask-Migrate.spec ++++++
--- /var/tmp/diff_new_pack.Botri6/_old 2021-07-23 23:41:35.481802235 +0200
+++ /var/tmp/diff_new_pack.Botri6/_new 2021-07-23 23:41:35.485802230 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-Flask-Migrate
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without python2
Name: python-Flask-Migrate
-Version: 2.5.3
+Version: 3.0.1
Release: 0
Summary: SQLAlchemy database migrations for Flask applications using
Alembic
License: MIT
@@ -27,7 +27,6 @@
Source:
https://files.pythonhosted.org/packages/source/F/Flask-Migrate/Flask-Migrate-%{version}.tar.gz
BuildRequires: %{python_module Flask >= 0.9}
BuildRequires: %{python_module Flask-SQLAlchemy >= 1.0}
-BuildRequires: %{python_module Flask-Script >= 0.6}
BuildRequires: %{python_module alembic >= 0.7}
BuildRequires: %{python_module setuptools}
%if %{with python2}
@@ -37,7 +36,6 @@
BuildRequires: python-rpm-macros
Requires: python-Flask >= 0.9
Requires: python-Flask-SQLAlchemy >= 1.0
-Requires: python-Flask-Script >= 0.6
Requires: python-alembic >= 0.7
BuildArch: noarch
%python_subpackages
++++++ Flask-Migrate-2.5.3.tar.gz -> Flask-Migrate-3.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/PKG-INFO
new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/PKG-INFO
--- old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/PKG-INFO 2020-03-14
11:04:08.000000000 +0100
+++ new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/PKG-INFO 2021-05-31
01:09:32.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: Flask-Migrate
-Version: 2.5.3
+Version: 3.0.1
Summary: SQLAlchemy database migrations for Flask applications using Alembic
Home-page: http://github.com/miguelgrinberg/flask-migrate/
Author: Miguel Grinberg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/SOURCES.txt
new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/SOURCES.txt
--- old/Flask-Migrate-2.5.3/Flask_Migrate.egg-info/SOURCES.txt 2020-03-14
11:04:08.000000000 +0100
+++ new/Flask-Migrate-3.0.1/Flask_Migrate.egg-info/SOURCES.txt 2021-05-31
01:09:32.000000000 +0200
@@ -22,12 +22,12 @@
flask_migrate/templates/flask-multidb/script.py.mako
tests/__init__.py
tests/app.py
+tests/app1.db
+tests/app2.db
tests/app_compare_type1.py
tests/app_compare_type2.py
tests/app_custom_directory.py
tests/app_custom_directory_path.py
tests/app_multidb.py
tests/test_migrate.py
-tests/test_migrate_flaskcli.py
-tests/test_multidb_migrate.py
-tests/test_multidb_migrate_flaskcli.py
\ No newline at end of file
+tests/test_multidb_migrate.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/PKG-INFO
new/Flask-Migrate-3.0.1/PKG-INFO
--- old/Flask-Migrate-2.5.3/PKG-INFO 2020-03-14 11:04:08.327396900 +0100
+++ new/Flask-Migrate-3.0.1/PKG-INFO 2021-05-31 01:09:32.797726000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: Flask-Migrate
-Version: 2.5.3
+Version: 3.0.1
Summary: SQLAlchemy database migrations for Flask applications using Alembic
Home-page: http://github.com/miguelgrinberg/flask-migrate/
Author: Miguel Grinberg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/README.md
new/Flask-Migrate-3.0.1/README.md
--- old/Flask-Migrate-2.5.3/README.md 2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/README.md 2020-11-21 20:28:26.000000000 +0100
@@ -1,7 +1,7 @@
Flask-Migrate
=============
-[](https://travis-ci.org/miguelgrinberg/Flask-Migrate)
+[](https://github.com/miguelgrinberg/flask-migrate/actions)
Flask-Migrate is an extension that handles SQLAlchemy database migrations for
Flask applications using Alembic. The database operations are provided as
command-line arguments under the `flask db` command.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/__version__
new/Flask-Migrate-3.0.1/__version__
--- old/Flask-Migrate-2.5.3/__version__ 2020-03-14 11:03:59.000000000 +0100
+++ new/Flask-Migrate-3.0.1/__version__ 2021-05-31 01:09:29.000000000 +0200
@@ -1 +1 @@
-2.5.3
+3.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/flask_migrate/__init__.py
new/Flask-Migrate-3.0.1/flask_migrate/__init__.py
--- old/Flask-Migrate-2.5.3/flask_migrate/__init__.py 2020-03-14
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/__init__.py 2021-05-15
16:27:37.000000000 +0200
@@ -4,17 +4,13 @@
import os
import sys
from flask import current_app
-try:
- from flask_script import Manager
-except ImportError:
- Manager = None
from alembic import __version__ as __alembic_version__
from alembic.config import Config as AlembicConfig
from alembic import command
from alembic.util import CommandError
alembic_version = tuple([int(v) for v in __alembic_version__.split('.')[0:3]])
-log = logging.getLogger()
+log = logging.getLogger(__name__)
class _MigrateConfig(object):
@@ -54,8 +50,8 @@
self.alembic_ctx_kwargs.update(kwargs)
if not hasattr(app, 'extensions'):
app.extensions = {}
- app.extensions['migrate'] = _MigrateConfig(self, self.db,
- **self.alembic_ctx_kwargs)
+ app.extensions['migrate'] = _MigrateConfig(
+ self, self.db, **self.alembic_ctx_kwargs)
def configure(self, f):
self.configure_callbacks.append(f)
@@ -100,25 +96,6 @@
return wrapped
-if Manager is not None:
- MigrateCommand = Manager(usage='Perform database migrations')
-else:
- class FakeCommand(object):
- def option(self, *args, **kwargs):
- def decorator(f):
- return f
- return decorator
-
- MigrateCommand = FakeCommand()
-
-
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
[email protected]('--multidb', dest='multidb', action='store_true',
- default=False,
- help=("Multiple databases migraton (default is "
- "False)"))
@catch_errors
def init(directory=None, multidb=False):
"""Creates a new migration repository"""
@@ -135,35 +112,6 @@
command.init(config, directory, 'flask')
[email protected]('--rev-id', dest='rev_id', default=None,
- help=('Specify a hardcoded revision id instead of '
- 'generating one'))
[email protected]('--version-path', dest='version_path', default=None,
- help=('Specify specific path from config for version '
- 'file'))
[email protected]('--branch-label', dest='branch_label', default=None,
- help=('Specify a branch label to apply to the new '
- 'revision'))
[email protected]('--splice', dest='splice', action='store_true',
- default=False,
- help=('Allow a non-head revision as the "head" to '
- 'splice onto'))
[email protected]('--head', dest='head', default='head',
- help=('Specify head revision or <branchname>@head to '
- 'base new revision on'))
[email protected]('--sql', dest='sql', action='store_true', default=False,
- help=("Don't emit SQL to database - dump to standard "
- "output instead"))
[email protected]('--autogenerate', dest='autogenerate',
- action='store_true', default=False,
- help=('Populate revision script with candidate '
- 'migration operations, based on comparison of '
- 'database to model'))
[email protected]('-m', '--message', dest='message', default=None,
- help='Revision message')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def revision(directory=None, message=None, autogenerate=False, sql=False,
head='head', splice=False, branch_label=None, version_path=None,
@@ -175,32 +123,6 @@
version_path=version_path, rev_id=rev_id)
[email protected]('--rev-id', dest='rev_id', default=None,
- help=('Specify a hardcoded revision id instead of '
- 'generating one'))
[email protected]('--version-path', dest='version_path', default=None,
- help=('Specify specific path from config for version '
- 'file'))
[email protected]('--branch-label', dest='branch_label', default=None,
- help=('Specify a branch label to apply to the new '
- 'revision'))
[email protected]('--splice', dest='splice', action='store_true',
- default=False,
- help=('Allow a non-head revision as the "head" to '
- 'splice onto'))
[email protected]('--head', dest='head', default='head',
- help=('Specify head revision or <branchname>@head to '
- 'base new revision on'))
[email protected]('--sql', dest='sql', action='store_true', default=False,
- help=("Don't emit SQL to database - dump to standard "
- "output instead"))
[email protected]('-m', '--message', dest='message', default=None)
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
[email protected]('-x', '--x-arg', dest='x_arg', default=None,
- action='append', help=("Additional arguments consumed "
- "by custom env.py scripts"))
@catch_errors
def migrate(directory=None, message=None, sql=False, head='head', splice=False,
branch_label=None, version_path=None, rev_id=None, x_arg=None):
@@ -212,11 +134,6 @@
version_path=version_path, rev_id=rev_id)
[email protected]('revision', nargs='?', default='head',
- help="revision identifier")
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def edit(directory=None, revision='current'):
"""Edit current revision."""
@@ -228,18 +145,6 @@
raise RuntimeError('Alembic 0.8.0 or greater is required')
[email protected]('--rev-id', dest='rev_id', default=None,
- help=('Specify a hardcoded revision id instead of '
- 'generating one'))
[email protected]('--branch-label', dest='branch_label', default=None,
- help=('Specify a branch label to apply to the new '
- 'revision'))
[email protected]('-m', '--message', dest='message', default=None)
[email protected]('revisions', nargs='+',
- help='one or more revisions, or "heads" for all heads')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def merge(directory=None, revisions='', message=None, branch_label=None,
rev_id=None):
@@ -249,20 +154,6 @@
branch_label=branch_label, rev_id=rev_id)
[email protected]('--tag', dest='tag', default=None,
- help=("Arbitrary 'tag' name - can be used by custom "
- "env.py scripts"))
[email protected]('--sql', dest='sql', action='store_true', default=False,
- help=("Don't emit SQL to database - dump to standard "
- "output instead"))
[email protected]('revision', nargs='?', default='head',
- help="revision identifier")
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
[email protected]('-x', '--x-arg', dest='x_arg', default=None,
- action='append', help=("Additional arguments consumed "
- "by custom env.py scripts"))
@catch_errors
def upgrade(directory=None, revision='head', sql=False, tag=None, x_arg=None):
"""Upgrade to a later version"""
@@ -271,20 +162,6 @@
command.upgrade(config, revision, sql=sql, tag=tag)
[email protected]('--tag', dest='tag', default=None,
- help=("Arbitrary 'tag' name - can be used by custom "
- "env.py scripts"))
[email protected]('--sql', dest='sql', action='store_true', default=False,
- help=("Don't emit SQL to database - dump to standard "
- "output instead"))
[email protected]('revision', nargs='?', default="-1",
- help="revision identifier")
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
[email protected]('-x', '--x-arg', dest='x_arg', default=None,
- action='append', help=("Additional arguments consumed "
- "by custom env.py scripts"))
@catch_errors
def downgrade(directory=None, revision='-1', sql=False, tag=None, x_arg=None):
"""Revert to a previous version"""
@@ -295,11 +172,6 @@
command.downgrade(config, revision, sql=sql, tag=tag)
[email protected]('revision', nargs='?', default="head",
- help="revision identifier")
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def show(directory=None, revision='head'):
"""Show the revision denoted by the given symbol."""
@@ -307,33 +179,18 @@
command.show(config, revision)
[email protected]('-i', '--indicate-current', dest='indicate_current',
action='store_true',
- default=False, help='Indicate current version (Alembic
0.9.9 or greater is required)')
[email protected]('-v', '--verbose', dest='verbose', action='store_true',
- default=False, help='Use more verbose output')
[email protected]('-r', '--rev-range', dest='rev_range', default=None,
- help='Specify a revision range; format is
[start]:[end]')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
-def history(directory=None, rev_range=None, verbose=False,
indicate_current=False):
+def history(directory=None, rev_range=None, verbose=False,
+ indicate_current=False):
"""List changeset scripts in chronological order."""
config = current_app.extensions['migrate'].migrate.get_config(directory)
if alembic_version >= (0, 9, 9):
- command.history(config, rev_range, verbose=verbose,
indicate_current=indicate_current)
+ command.history(config, rev_range, verbose=verbose,
+ indicate_current=indicate_current)
else:
command.history(config, rev_range, verbose=verbose)
[email protected]('--resolve-dependencies', dest='resolve_dependencies',
- action='store_true', default=False,
- help='Treat dependency versions as down revisions')
[email protected]('-v', '--verbose', dest='verbose', action='store_true',
- default=False, help='Use more verbose output')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def heads(directory=None, verbose=False, resolve_dependencies=False):
"""Show current available heads in the script directory"""
@@ -342,11 +199,6 @@
resolve_dependencies=resolve_dependencies)
[email protected]('-v', '--verbose', dest='verbose', action='store_true',
- default=False, help='Use more verbose output')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def branches(directory=None, verbose=False):
"""Show current branch points"""
@@ -354,31 +206,13 @@
command.branches(config, verbose=verbose)
[email protected]('--head-only', dest='head_only', action='store_true',
- default=False,
- help='Deprecated. Use --verbose for additional output')
[email protected]('-v', '--verbose', dest='verbose', action='store_true',
- default=False, help='Use more verbose output')
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
-def current(directory=None, verbose=False, head_only=False):
+def current(directory=None, verbose=False):
"""Display the current revision for each database."""
config = current_app.extensions['migrate'].migrate.get_config(directory)
- command.current(config, verbose=verbose, head_only=head_only)
+ command.current(config, verbose=verbose)
[email protected]('--tag', dest='tag', default=None,
- help=("Arbitrary 'tag' name - can be used by custom "
- "env.py scripts"))
[email protected]('--sql', dest='sql', action='store_true', default=False,
- help=("Don't emit SQL to database - dump to standard "
- "output instead"))
[email protected]('revision', default=None, help="revision identifier")
[email protected]('-d', '--directory', dest='directory', default=None,
- help=("Migration script directory (default is "
- "'migrations')"))
@catch_errors
def stamp(directory=None, revision='head', sql=False, tag=None):
"""'stamp' the revision table with the given revision; don't run any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/flask_migrate/cli.py
new/Flask-Migrate-3.0.1/flask_migrate/cli.py
--- old/Flask-Migrate-2.5.3/flask_migrate/cli.py 2019-12-08
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/cli.py 2021-01-19
12:25:54.000000000 +0100
@@ -14,6 +14,7 @@
from flask_migrate import current as _current
from flask_migrate import stamp as _stamp
+
@click.group()
def db():
"""Perform database migrations."""
@@ -85,7 +86,8 @@
@with_appcontext
def migrate(directory, message, sql, head, splice, branch_label, version_path,
rev_id, x_arg):
- """Autogenerate a new revision file (Alias for 'revision
--autogenerate')"""
+ """Autogenerate a new revision file (Alias for
+ 'revision --autogenerate')"""
_migrate(directory, message, sql, head, splice, branch_label, version_path,
rev_id, x_arg)
@@ -168,7 +170,9 @@
@click.option('-r', '--rev-range', default=None,
help='Specify a revision range; format is [start]:[end]')
@click.option('-v', '--verbose', is_flag=True, help='Use more verbose output')
[email protected]('-i', '--indicate-current', is_flag=True, help='Indicate current
version (Alembic 0.9.9 or greater is required)')
[email protected]('-i', '--indicate-current', is_flag=True,
+ help=('Indicate current version (Alembic 0.9.9 or greater is '
+ 'required)'))
@with_appcontext
def history(directory, rev_range, verbose, indicate_current):
"""List changeset scripts in chronological order."""
@@ -201,12 +205,10 @@
@click.option('-d', '--directory', default=None,
help=('Migration script directory (default is "migrations")'))
@click.option('-v', '--verbose', is_flag=True, help='Use more verbose output')
[email protected]('--head-only', is_flag=True,
- help='Deprecated. Use --verbose for additional output')
@with_appcontext
-def current(directory, verbose, head_only):
+def current(directory, verbose):
"""Display the current revision for each database."""
- _current(directory, verbose, head_only)
+ _current(directory, verbose)
@db.command()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/alembic.ini.mako
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/alembic.ini.mako
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/alembic.ini.mako
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/alembic.ini.mako
2021-02-12 11:35:50.000000000 +0100
@@ -11,7 +11,7 @@
# Logging configuration
[loggers]
-keys = root,sqlalchemy,alembic
+keys = root,sqlalchemy,alembic,flask_migrate
[handlers]
keys = console
@@ -34,6 +34,11 @@
handlers =
qualname = alembic
+[logger_flask_migrate]
+level = INFO
+handlers =
+qualname = flask_migrate
+
[handler_console]
class = StreamHandler
args = (sys.stderr,)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/env.py
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/env.py
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask/env.py
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask/env.py
2021-05-31 01:07:20.000000000 +0200
@@ -3,8 +3,7 @@
import logging
from logging.config import fileConfig
-from sqlalchemy import engine_from_config
-from sqlalchemy import pool
+from flask import current_app
from alembic import context
@@ -21,10 +20,10 @@
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
-from flask import current_app
config.set_main_option(
'sqlalchemy.url',
- str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
+ str(current_app.extensions['migrate'].db.get_engine().url).replace(
+ '%', '%%'))
target_metadata = current_app.extensions['migrate'].db.metadata
# other values from the config, defined by the needs of env.py,
@@ -72,11 +71,7 @@
directives[:] = []
logger.info('No changes in schema detected.')
- connectable = engine_from_config(
- config.get_section(config.config_ini_section),
- prefix='sqlalchemy.',
- poolclass=pool.NullPool,
- )
+ connectable = current_app.extensions['migrate'].db.get_engine()
with connectable.connect() as connection:
context.configure(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/alembic.ini.mako
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/alembic.ini.mako
---
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/alembic.ini.mako
2019-12-08 18:39:20.000000000 +0100
+++
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/alembic.ini.mako
2021-02-12 11:35:58.000000000 +0100
@@ -11,7 +11,7 @@
# Logging configuration
[loggers]
-keys = root,sqlalchemy,alembic
+keys = root,sqlalchemy,alembic,flask_migrate
[handlers]
keys = console
@@ -34,6 +34,11 @@
handlers =
qualname = alembic
+[logger_flask_migrate]
+level = INFO
+handlers =
+qualname = flask_migrate
+
[handler_console]
class = StreamHandler
args = (sys.stderr,)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/env.py
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/env.py
--- old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/env.py
2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/env.py
2021-05-31 01:07:04.000000000 +0200
@@ -2,11 +2,8 @@
import logging
from logging.config import fileConfig
-import re
-from sqlalchemy import engine_from_config
from sqlalchemy import MetaData
-from sqlalchemy import pool
from flask import current_app
from alembic import context
@@ -28,14 +25,20 @@
# target_metadata = mymodel.Base.metadata
config.set_main_option(
'sqlalchemy.url',
- str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%'))
-bind_names = []
-for bind in current_app.config.get("SQLALCHEMY_BINDS"):
+ str(current_app.extensions['migrate'].db.get_engine().url).replace(
+ '%', '%%'))
+if current_app.config.get('SQLALCHEMY_BINDS') is not None:
+ bind_names = list(current_app.config['SQLALCHEMY_BINDS'].keys())
+else:
+ get_bind_names = getattr(current_app.extensions['migrate'].db,
+ 'bind_names', None)
+ if get_bind_names:
+ bind_names = get_bind_names()
+for bind in bind_names:
context.config.set_section_option(
bind, "sqlalchemy.url",
str(current_app.extensions['migrate'].db.get_engine(
- current_app, bind).url).replace('%', '%%'))
- bind_names.append(bind)
+ bind=bind).url).replace('%', '%%'))
target_metadata = current_app.extensions['migrate'].db.metadata
@@ -121,20 +124,12 @@
# for the direct-to-DB use case, start a transaction on all
# engines, then run all migrations, then commit all transactions.
engines = {
- '': {
- 'engine': engine_from_config(
- config.get_section(config.config_ini_section),
- prefix='sqlalchemy.',
- poolclass=pool.NullPool,
- )
- }
+ '': {'engine': current_app.extensions['migrate'].db.get_engine()}
}
for name in bind_names:
engines[name] = rec = {}
- rec['engine'] = engine_from_config(
- context.config.get_section(name),
- prefix='sqlalchemy.',
- poolclass=pool.NullPool)
+ rec['engine'] = current_app.extensions['migrate'].db.get_engine(
+ bind=name)
for name, rec in engines.items():
engine = rec['engine']
@@ -164,7 +159,7 @@
for rec in engines.values():
rec['transaction'].commit()
- except:
+ except: # noqa: E722
for rec in engines.values():
rec['transaction'].rollback()
raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/script.py.mako
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/script.py.mako
---
old/Flask-Migrate-2.5.3/flask_migrate/templates/flask-multidb/script.py.mako
2019-12-08 18:39:20.000000000 +0100
+++
new/Flask-Migrate-3.0.1/flask_migrate/templates/flask-multidb/script.py.mako
2021-05-31 01:05:12.000000000 +0200
@@ -28,7 +28,13 @@
<%
from flask import current_app
- db_names = [''] + list(current_app.config.get("SQLALCHEMY_BINDS").keys())
+ if current_app.config.get('SQLALCHEMY_BINDS') is not None:
+ bind_names = list(current_app.config['SQLALCHEMY_BINDS'].keys())
+ else:
+ get_bind_names = getattr(current_app.extensions['migrate'].db,
'bind_names', None)
+ if get_bind_names:
+ bind_names = get_bind_names()
+ db_names = [''] + bind_names
%>
## generate an "upgrade_<xyz>() / downgrade_<xyz>()" function
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/setup.py
new/Flask-Migrate-3.0.1/setup.py
--- old/Flask-Migrate-2.5.3/setup.py 2019-12-08 18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/setup.py 2021-05-15 16:17:04.000000000 +0200
@@ -28,15 +28,11 @@
'Flask-SQLAlchemy>=1.0',
'alembic>=0.7'
],
- tests_require=[
- 'Flask-Script>=0.6'
- ],
entry_points={
'flask.commands': [
'db=flask_migrate.cli:db'
],
},
- test_suite="tests",
classifiers=[
'Environment :: Web Environment',
'Intended Audience :: Developers',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/__init__.py
new/Flask-Migrate-3.0.1/tests/__init__.py
--- old/Flask-Migrate-2.5.3/tests/__init__.py 2019-12-08 18:39:20.000000000
+0100
+++ new/Flask-Migrate-3.0.1/tests/__init__.py 2020-11-21 20:28:26.000000000
+0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app.py
new/Flask-Migrate-3.0.1/tests/app.py
--- old/Flask-Migrate-2.5.3/tests/app.py 2019-12-12 00:11:30.000000000
+0100
+++ new/Flask-Migrate-3.0.1/tests/app.py 2021-05-15 16:37:25.000000000
+0200
@@ -1,8 +1,7 @@
#!/bin/env python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -11,20 +10,18 @@
db = SQLAlchemy(app)
migrate = Migrate(app, db)
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
[email protected]
[email protected]()
def add():
+ """Add test user."""
db.session.add(User(name='test'))
db.session.commit()
if __name__ == '__main__':
- manager.run()
+ app.run()
Binary files old/Flask-Migrate-2.5.3/tests/app1.db and
new/Flask-Migrate-3.0.1/tests/app1.db differ
Binary files old/Flask-Migrate-2.5.3/tests/app2.db and
new/Flask-Migrate-3.0.1/tests/app2.db differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_compare_type1.py
new/Flask-Migrate-3.0.1/tests/app_compare_type1.py
--- old/Flask-Migrate-2.5.3/tests/app_compare_type1.py 2019-12-08
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_compare_type1.py 2021-05-15
16:33:41.000000000 +0200
@@ -1,7 +1,6 @@
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,13 +9,11 @@
db = SQLAlchemy(app)
migrate = Migrate(app, db, compare_type=True)
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
+
if __name__ == '__main__':
- manager.run()
+ app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_compare_type2.py
new/Flask-Migrate-3.0.1/tests/app_compare_type2.py
--- old/Flask-Migrate-2.5.3/tests/app_compare_type2.py 2019-12-08
18:39:20.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_compare_type2.py 2021-05-15
16:33:58.000000000 +0200
@@ -1,7 +1,6 @@
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,13 +9,11 @@
db = SQLAlchemy(app)
migrate = Migrate(app, db, compare_type=True)
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(10))
+
if __name__ == '__main__':
- manager.run()
+ app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_custom_directory.py
new/Flask-Migrate-3.0.1/tests/app_custom_directory.py
--- old/Flask-Migrate-2.5.3/tests/app_custom_directory.py 2019-12-12
00:11:34.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_custom_directory.py 2021-05-15
16:37:20.000000000 +0200
@@ -1,7 +1,6 @@
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
@@ -10,20 +9,18 @@
db = SQLAlchemy(app)
migrate = Migrate(app, db, directory='temp_folder/temp_migrations')
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
[email protected]
[email protected]()
def add():
+ """Add test user."""
db.session.add(User(name='test'))
db.session.commit()
if __name__ == '__main__':
- manager.run()
+ app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/tests/app_custom_directory_path.py
new/Flask-Migrate-3.0.1/tests/app_custom_directory_path.py
--- old/Flask-Migrate-2.5.3/tests/app_custom_directory_path.py 2020-03-14
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_custom_directory_path.py 2021-05-15
16:41:10.000000000 +0200
@@ -1,7 +1,6 @@
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
from pathlib import Path
app = Flask(__name__)
@@ -11,20 +10,18 @@
db = SQLAlchemy(app)
migrate = Migrate(app, db, directory=Path('temp_folder/temp_migrations'))
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
[email protected]
[email protected]()
def add():
+ """Add test user."""
db.session.add(User(name='test'))
db.session.commit()
if __name__ == '__main__':
- manager.run()
+ app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/app_multidb.py
new/Flask-Migrate-3.0.1/tests/app_multidb.py
--- old/Flask-Migrate-2.5.3/tests/app_multidb.py 2019-12-12
00:09:00.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/app_multidb.py 2021-05-30
16:48:14.000000000 +0200
@@ -1,8 +1,7 @@
#!/bin/env python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
-from flask_script import Manager
-from flask_migrate import Migrate, MigrateCommand
+from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app1.db'
@@ -27,16 +26,14 @@
migrate = Migrate(app, db)
-manager = Manager(app)
-manager.add_command('db', MigrateCommand)
-
[email protected]
[email protected]()
def add():
+ """Add test users."""
db.session.add(User(name='test'))
db.session.add(Group(name='group'))
db.session.commit()
if __name__ == '__main__':
- manager.run()
+ app.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_migrate.py
new/Flask-Migrate-3.0.1/tests/test_migrate.py
--- old/Flask-Migrate-2.5.3/tests/test_migrate.py 2020-03-14
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_migrate.py 2021-05-15
16:32:35.000000000 +0200
@@ -1,13 +1,13 @@
import os
-import shlex
import shutil
-import subprocess
-import sys
import unittest
+import subprocess
+import shlex
-def run_cmd(cmd):
+def run_cmd(app, cmd):
"""Run a command and return a tuple with (stdout, stderr, exit_code)"""
+ os.environ['FLASK_APP'] = app
process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = process.communicate()
@@ -54,43 +54,49 @@
self.assertTrue(isinstance(v, int))
def test_migrate_upgrade(self):
- (o, e, s) = run_cmd(sys.executable + ' app.py db init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app.py db migrate')
+ (o, e, s) = run_cmd('app.py', 'flask db init')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app.py db upgrade')
+ (o, e, s) = run_cmd('app.py', 'flask db migrate')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app.py add')
+ (o, e, s) = run_cmd('app.py', 'flask db upgrade')
self.assertTrue(s == 0)
+ from .app import db, User
+ db.session.add(User(name='test'))
+ db.session.commit()
+
def test_custom_directory(self):
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db
init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db
migrate')
+ (o, e, s) = run_cmd('app_custom_directory.py', 'flask db init')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py db
upgrade')
+ (o, e, s) = run_cmd('app_custom_directory.py', 'flask db migrate')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory.py add')
+ (o, e, s) = run_cmd('app_custom_directory.py', 'flask db upgrade')
self.assertTrue(s == 0)
+ from .app_custom_directory import db, User
+ db.session.add(User(name='test'))
+ db.session.commit()
+
def test_custom_directory_path(self):
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db
init')
+ (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db init')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db
migrate')
+ (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db migrate')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py db
upgrade')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_custom_directory_path.py
add')
+ (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db upgrade')
self.assertTrue(s == 0)
+ from .app_custom_directory_path import db, User
+ db.session.add(User(name='test'))
+ db.session.commit()
+
def test_compare_type(self):
- (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db init')
+ (o, e, s) = run_cmd('app_compare_type1.py', 'flask db init')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db
migrate')
+ (o, e, s) = run_cmd('app_compare_type1.py', 'flask db migrate')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_compare_type1.py db
upgrade')
+ (o, e, s) = run_cmd('app_compare_type1.py', 'flask db upgrade')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_compare_type2.py db
migrate')
+ (o, e, s) = run_cmd('app_compare_type2.py', 'flask db migrate')
self.assertTrue(s == 0)
self.assertTrue(b'Detected type change from VARCHAR(length=128) '
b'to String(length=10)' in e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_migrate_flaskcli.py
new/Flask-Migrate-3.0.1/tests/test_migrate_flaskcli.py
--- old/Flask-Migrate-2.5.3/tests/test_migrate_flaskcli.py 2020-03-14
10:57:33.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_migrate_flaskcli.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,102 +0,0 @@
-import os
-import shutil
-import unittest
-import subprocess
-import shlex
-
-
-def run_cmd(app, cmd):
- """Run a command and return a tuple with (stdout, stderr, exit_code)"""
- os.environ['FLASK_APP'] = app
- process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (stdout, stderr) = process.communicate()
- print('\n$ ' + cmd)
- print(stdout.decode('utf-8'))
- print(stderr.decode('utf-8'))
- return stdout, stderr, process.wait()
-
-
-class TestMigrate(unittest.TestCase):
- def setUp(self):
- os.chdir(os.path.split(os.path.abspath(__file__))[0])
- try:
- os.remove('app.db')
- except OSError:
- pass
- try:
- shutil.rmtree('migrations')
- except OSError:
- pass
- try:
- shutil.rmtree('temp_folder')
- except OSError:
- pass
-
- def tearDown(self):
- try:
- os.remove('app.db')
- except OSError:
- pass
- try:
- shutil.rmtree('migrations')
- except OSError:
- pass
- try:
- shutil.rmtree('temp_folder')
- except OSError:
- pass
-
- def test_alembic_version(self):
- from flask_migrate import alembic_version
- self.assertEqual(len(alembic_version), 3)
- for v in alembic_version:
- self.assertTrue(isinstance(v, int))
-
- def test_migrate_upgrade(self):
- (o, e, s) = run_cmd('app.py', 'flask db init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app.py', 'flask db migrate')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app.py', 'flask db upgrade')
- self.assertTrue(s == 0)
-
- from .app import db, User
- db.session.add(User(name='test'))
- db.session.commit()
-
- def test_custom_directory(self):
- (o, e, s) = run_cmd('app_custom_directory.py', 'flask db init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_custom_directory.py', 'flask db migrate')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_custom_directory.py', 'flask db upgrade')
- self.assertTrue(s == 0)
-
- from .app_custom_directory import db, User
- db.session.add(User(name='test'))
- db.session.commit()
-
- def test_custom_directory_path(self):
- (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db migrate')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_custom_directory_path.py', 'flask db upgrade')
- self.assertTrue(s == 0)
-
- from .app_custom_directory_path import db, User
- db.session.add(User(name='test'))
- db.session.commit()
-
- def test_compare_type(self):
- (o, e, s) = run_cmd('app_compare_type1.py', 'flask db init')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_compare_type1.py', 'flask db migrate')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_compare_type1.py', 'flask db upgrade')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_compare_type2.py', 'flask db migrate')
- self.assertTrue(s == 0)
- self.assertTrue(b'Detected type change from VARCHAR(length=128) '
- b'to String(length=10)' in e)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Flask-Migrate-2.5.3/tests/test_multidb_migrate.py
new/Flask-Migrate-3.0.1/tests/test_multidb_migrate.py
--- old/Flask-Migrate-2.5.3/tests/test_multidb_migrate.py 2019-12-12
00:09:27.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_multidb_migrate.py 2019-12-08
18:39:21.000000000 +0100
@@ -1,14 +1,14 @@
import os
-import shlex
import shutil
-import sqlite3
-import subprocess
-import sys
import unittest
+import subprocess
+import shlex
+import sqlite3
-def run_cmd(cmd):
+def run_cmd(app, cmd):
"""Run a command and return a tuple with (stdout, stderr, exit_code)"""
+ os.environ['FLASK_APP'] = app
process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = process.communicate()
@@ -40,11 +40,11 @@
pass
def test_multidb_migrate_upgrade(self):
- (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db init
--multidb')
+ (o, e, s) = run_cmd('app_multidb.py', 'flask db init --multidb')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db migrate')
+ (o, e, s) = run_cmd('app_multidb.py', 'flask db migrate')
self.assertTrue(s == 0)
- (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db upgrade')
+ (o, e, s) = run_cmd('app_multidb.py', 'flask db upgrade')
self.assertTrue(s == 0)
# ensure the tables are in the correct databases
@@ -65,11 +65,13 @@
self.assertIn(('group',), tables)
# ensure the databases can be written to
- (o, e, s) = run_cmd(sys.executable + ' app_multidb.py add')
- self.assertTrue(s == 0)
+ from .app_multidb import db, User, Group
+ db.session.add(User(name='test'))
+ db.session.add(Group(name='group'))
+ db.session.commit()
# ensure the downgrade works
- (o, e, s) = run_cmd(sys.executable + ' app_multidb.py db downgrade')
+ (o, e, s) = run_cmd('app_multidb.py', 'flask db downgrade')
self.assertTrue(s == 0)
conn1 = sqlite3.connect('app1.db')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Flask-Migrate-2.5.3/tests/test_multidb_migrate_flaskcli.py
new/Flask-Migrate-3.0.1/tests/test_multidb_migrate_flaskcli.py
--- old/Flask-Migrate-2.5.3/tests/test_multidb_migrate_flaskcli.py
2019-12-08 18:39:21.000000000 +0100
+++ new/Flask-Migrate-3.0.1/tests/test_multidb_migrate_flaskcli.py
1970-01-01 01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-import os
-import shutil
-import unittest
-import subprocess
-import shlex
-import sqlite3
-
-
-def run_cmd(app, cmd):
- """Run a command and return a tuple with (stdout, stderr, exit_code)"""
- os.environ['FLASK_APP'] = app
- process = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (stdout, stderr) = process.communicate()
- return stdout, stderr, process.wait()
-
-
-class TestMigrate(unittest.TestCase):
- def setUp(self):
- os.chdir(os.path.split(os.path.abspath(__file__))[0])
- try:
- os.remove('app1.db')
- os.remove('app2.db')
- except OSError:
- pass
- try:
- shutil.rmtree('migrations')
- except OSError:
- pass
-
- def tearDown(self):
- try:
- os.remove('app1.db')
- os.remove('app2.db')
- except OSError:
- pass
- try:
- shutil.rmtree('migrations')
- except OSError:
- pass
-
- def test_multidb_migrate_upgrade(self):
- (o, e, s) = run_cmd('app_multidb.py', 'flask db init --multidb')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_multidb.py', 'flask db migrate')
- self.assertTrue(s == 0)
- (o, e, s) = run_cmd('app_multidb.py', 'flask db upgrade')
- self.assertTrue(s == 0)
-
- # ensure the tables are in the correct databases
- conn1 = sqlite3.connect('app1.db')
- c = conn1.cursor()
- c.execute('select name from sqlite_master')
- tables = c.fetchall()
- conn1.close()
- self.assertIn(('alembic_version',), tables)
- self.assertIn(('user',), tables)
-
- conn2 = sqlite3.connect('app2.db')
- c = conn2.cursor()
- c.execute('select name from sqlite_master')
- tables = c.fetchall()
- conn2.close()
- self.assertIn(('alembic_version',), tables)
- self.assertIn(('group',), tables)
-
- # ensure the databases can be written to
- from .app_multidb import db, User, Group
- db.session.add(User(name='test'))
- db.session.add(Group(name='group'))
- db.session.commit()
-
- # ensure the downgrade works
- (o, e, s) = run_cmd('app_multidb.py', 'flask db downgrade')
- self.assertTrue(s == 0)
-
- conn1 = sqlite3.connect('app1.db')
- c = conn1.cursor()
- c.execute('select name from sqlite_master')
- tables = c.fetchall()
- conn1.close()
- self.assertIn(('alembic_version',), tables)
- self.assertNotIn(('user',), tables)
-
- conn2 = sqlite3.connect('app2.db')
- c = conn2.cursor()
- c.execute('select name from sqlite_master')
- tables = c.fetchall()
- conn2.close()
- self.assertIn(('alembic_version',), tables)
- self.assertNotIn(('group',), tables)