Migrations raise an exception using --sql on SQLite
ncrocfer opened this issue · 0 comments
ncrocfer commented
The migrations raise an exception on SQLite using the --sql
option (it works without the option). No problem with the others RDBMS.
$ director db upgrade --sql
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Generating static SQL
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
CREATE TABLE alembic_version (
version_num VARCHAR(32) NOT NULL,
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
);
INFO [alembic.runtime.migration] Running upgrade -> 30d6f6636351, Initial migration
-- Running upgrade -> 30d6f6636351
CREATE TABLE workflows (
id CHAR(32) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
name VARCHAR(255) NOT NULL,
project VARCHAR(255) NOT NULL,
status VARCHAR(8) NOT NULL,
payload TEXT,
periodic BOOLEAN,
CONSTRAINT pk_workflows PRIMARY KEY (id),
CONSTRAINT ck_workflows_status CHECK (status IN ('pending', 'progress', 'success', 'error', 'canceled')),
CONSTRAINT ck_workflows_periodic CHECK (periodic IN (0, 1))
);
CREATE INDEX ix_workflows_created_at ON workflows (created_at);
CREATE TABLE tasks (
id CHAR(32) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
"key" VARCHAR(255) NOT NULL,
status VARCHAR(8) NOT NULL,
previous TEXT,
workflow_id CHAR(32) NOT NULL,
CONSTRAINT pk_tasks PRIMARY KEY (id),
CONSTRAINT fk_tasks_workflow_id_workflows FOREIGN KEY(workflow_id) REFERENCES workflows (id),
CONSTRAINT ck_tasks_status CHECK (status IN ('pending', 'progress', 'success', 'error', 'canceled'))
);
CREATE INDEX ix_tasks_created_at ON tasks (created_at);
INSERT INTO alembic_version (version_num) VALUES ('30d6f6636351');
INFO [alembic.runtime.migration] Running upgrade 30d6f6636351 -> 05cf96d6fcae, Add task result
-- Running upgrade 30d6f6636351 -> 05cf96d6fcae
ALTER TABLE tasks ADD COLUMN result BLOB;
UPDATE alembic_version SET version_num='05cf96d6fcae' WHERE alembic_version.version_num = '30d6f6636351';
INFO [alembic.runtime.migration] Running upgrade 05cf96d6fcae -> 3f8466b16023, Add users table
-- Running upgrade 05cf96d6fcae -> 3f8466b16023
CREATE TABLE users (
id CHAR(32) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
CONSTRAINT pk_users PRIMARY KEY (id),
CONSTRAINT uq_users_username UNIQUE (username)
);
CREATE INDEX ix_users_created_at ON users (created_at);
UPDATE alembic_version SET version_num='3f8466b16023' WHERE alembic_version.version_num = '05cf96d6fcae';
INFO [alembic.runtime.migration] Running upgrade 3f8466b16023 -> 063ff371f2da, Add index on workflow_id in task table
-- Running upgrade 3f8466b16023 -> 063ff371f2da
CREATE INDEX ix_tasks_workflow_id ON tasks (workflow_id);
UPDATE alembic_version SET version_num='063ff371f2da' WHERE alembic_version.version_num = '3f8466b16023';
INFO [alembic.runtime.migration] Running upgrade 063ff371f2da -> 2ac615d6850b, force varchar 255
-- Running upgrade 063ff371f2da -> 2ac615d6850b
Traceback (most recent call last):
File "/Users/ncrocfer/Dev/celery-director/venv/bin/flask", line 8, in <module>
sys.exit(main())
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask/cli.py", line 966, in main
cli.main(prog_name="python -m flask" if as_module else None)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask/cli.py", line 586, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask/cli.py", line 426, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask_migrate/cli.py", line 134, in upgrade
_upgrade(directory, revision, sql, tag, x_arg)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask_migrate/__init__.py", line 95, in wrapped
f(*args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/flask_migrate/__init__.py", line 280, in upgrade
command.upgrade(config, revision, sql=sql, tag=tag)
# Auto-generated, please adjust.
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/command.py", line 298, in upgrade
script.run_env()
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/script/base.py", line 489, in run_env
util.load_python_file(self.dir, "env.py")
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/util/pyfiles.py", line 98, in load_python_file
module = load_module_py(module_id, path)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/util/compat.py", line 173, in load_module_py
spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/director/migrations/env.py", line 94, in <module>
run_migrations_offline()
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/director/migrations/env.py", line 54, in run_migrations_offline
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/runtime/environment.py", line 846, in run_migrations
self.get_context().run_migrations(**kw)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/runtime/migration.py", line 518, in run_migrations
step.migration_fn(**kw)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/director/migrations/versions/2ac615d6850b_force_varchar_255.py", line 26, in upgrade
existing_nullable=False,
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 89, in __exit__
next(self.gen)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/operations/base.py", line 325, in batch_alter_table
impl.flush()
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/alembic/operations/batch.py", line 97, in flush
**self.reflect_kwargs
File "<string>", line 2, in __new__
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/util/deprecations.py", line 128, in warned
return fn(*args, **kwargs)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 506, in __new__
metadata._remove_table(name, schema)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
compat.reraise(exc_type, exc_value, exc_tb)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 153, in reraise
raise value
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 501, in __new__
table._init(name, metadata, *args, **kw)
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 595, in _init
resolve_fks=resolve_fks,
File "/Users/ncrocfer/Dev/celery-director/venv/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 613, in _autoload
autoload_with.run_callable(
AttributeError: 'MockConnection' object has no attribute 'run_callable'