Flask 属性错误:';int';对象没有属性'_编译器调度&x27;

Flask 属性错误:';int';对象没有属性'_编译器调度&x27;,flask,sqlalchemy,alembic,Flask,Sqlalchemy,Alembic,我正在使用flask-sqlalchemy扩展和alembic进行迁移。当我尝试添加新的迁移文件并将架构升级到最新版本时,出现以下错误: AttributeError: 'int' object has no attribute '_compiler_dispatch' 迁移文件的内容: revision = 'ec2c2d40eb1' down_revision = '28dda873b826' from alembic import op import sqlalchemy as sa

我正在使用
flask-sqlalchemy
扩展和
alembic
进行迁移。当我尝试添加新的迁移文件并将架构升级到最新版本时,出现以下错误:

AttributeError: 'int' object has no attribute '_compiler_dispatch'
迁移文件的内容:

revision = 'ec2c2d40eb1'
down_revision = '28dda873b826'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.alter_column(
        'users',
        'wiki_permission',
        new_column_name='wiki_group',
        nullable=False,
        existing_nullable=False,
        type_=sa.Integer(),
        existing_type=sa.Integer(),
        server_default=1,
        existing_server_default=1          # Line of error - 27
    )   


def downgrade():
    op.alter_column(
        'users',
        'wiki_group',
        new_column_name='wiki_permission',
        nullable=False,
        existing_nullable=False,
        type_=sa.Integer(),
        existing_type=sa.Integer(),
        server_default=1,
        existing_server_default=1
    )
谢谢你抽出时间来帮助我

编辑:

完整的错误消息:

INFO  [alembic.migration] Context impl MySQLImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.migration] Running upgrade 28dda873b826 -> ec2c2d40eb1, users change column wiki_permission to wiki_group
Traceback (most recent call last):
  File "/home/kevin/Code/python/flask/terminus/venv/bin/alembic", line 9, in <module>
    load_entry_point('alembic==0.6.5', 'console_scripts', 'alembic')()
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/config.py", line 298, in main
    CommandLine(prog=prog).main(argv=argv)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/config.py", line 293, in main
    self.run_cmd(cfg, options)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/config.py", line 279, in run_cmd
    **dict((k, getattr(options, k)) for k in kwarg)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/command.py", line 125, in upgrade
    script.run_env()
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/script.py", line 203, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/util.py", line 212, in load_python_file
    module = load_module_py(module_id, path)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/compat.py", line 58, in load_module_py
    mod = imp.load_source(module_id, path, fp)
  File "alembic/env.py", line 77, in <module>
    run_migrations_online()
  File "alembic/env.py", line 70, in run_migrations_online
    context.run_migrations()
  File "<string>", line 7, in run_migrations
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/environment.py", line 688, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/migration.py", line 258, in run_migrations
    change(**kw)
  File "alembic/versions/ec2c2d40eb1_users_change_column_wiki_permission_to_.py", line 27, in upgrade
    existing_server_default=1,
  File "<string>", line 7, in alter_column
  File "<string>", line 1, in <lambda>
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/util.py", line 329, in go
    return fn(*arg, **kw)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/operations.py", line 317, in alter_column
    existing_autoincrement=existing_autoincrement
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py", line 44, in alter_column
    else existing_autoincrement
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/impl.py", line 76, in _exec
    conn.execute(construct, *multiparams, **params)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 720, in execute
    return meth(self, multiparams, params)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 67, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 768, in _execute_ddl
    compiled = ddl.compile(dialect=dialect)
  File "<string>", line 1, in <lambda>
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 468, in compile
    return self._compiler(dialect, bind=bind, **kw)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 25, in _compiler
    return dialect.ddl_compiler(dialect, self, **kw)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 197, in __init__
    self.string = self.process(self.statement, **compile_kwargs)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 220, in process
    return obj._compiler_dispatch(self, **kwargs)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/ext/compiler.py", line 410, in <lambda>
    lambda *arg, **kw: existing(*arg, **kw))
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/ext/compiler.py", line 448, in __call__
    return fn(element, compiler, **kw)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py", line 171, in _mysql_change_column
    autoincrement=element.autoincrement
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py", line 190, in _mysql_colspec
    spec += " DEFAULT %s" % _render_value(compiler, server_default)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py", line 179, in _render_value
    return compiler.sql_compiler.process(expr)
  File "/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 220, in process
    return obj._compiler_dispatch(self, **kwargs)
AttributeError: 'int' object has no attribute '_compiler_dispatch'
INFO[alembic.migration]Context impl MySQLImpl。
INFO[alembic.migration]将采用非事务性DDL。
信息[alembic.migration]运行升级28dda873b826->ec2c2d40eb1,用户将列wiki\权限更改为wiki\组
回溯(最近一次呼叫最后一次):
文件“/home/kevin/Code/python/flask/terminus/venv/bin/alembic”,第9行,in
加载入口点(“alembic==0.6.5”,“控制台脚本”,“alembic”)()
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/config.py”,第298行,在main中
命令行(prog=prog).main(argv=argv)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/config.py”,第293行,在main中
self.run_cmd(cfg,选项)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/config.py”,第279行,在run_cmd中
**kwarg中k的dict((k,getattr(options,k)))
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/command.py”,第125行,在升级中
script.run_env()
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/script.py”,第203行,运行环境
加载python文件(self.dir,'env.py')
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/util.py”,第212行,在load\u python\u文件中
模块=加载模块(模块id,路径)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/compat.py”,第58行,加载模块
mod=imp.load\u源(模块id、路径、fp)
文件“alembic/env.py”,第77行,在
运行_迁移_联机()
文件“alembic/env.py”,第70行,在线运行迁移
context.run_migrations()
运行迁移中第7行的文件“”
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/environment.py”,第688行,运行迁移中
self.get_context().运行_迁移(**kw)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/migration.py”,第258行,运行迁移中
变化(**千瓦)
文件“alembic/versions/ec2c2d40eb1\u用户\u更改\u列\u wiki\u权限\u改为\uuu.py”,第27行,在升级中
现有\u服务器\u默认值=1,
文件“”,第7行,在alter_列中
文件“”,第1行,在
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/util.py”,go中第329行
返回fn(*arg,**kw)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/operations.py”,第317行,在alter_列中
现有自动增量=现有自动增量
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/ddl/mysql.py”,第44行,在alter_列中
else现有_自动增量
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/ddl/impl.py”,第76行,in_exec
conn.execute(构造、*多内存、**参数)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/engine/base.py”,第720行,在execute中
返回方法(自身、多线程、参数)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/ddl.py”,第67行,在连接中执行
返回连接。_执行_ddl(self、multiparams、params)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/engine/base.py”,第768行,在_execute_ddl中
compiled=ddl.compile(方言=方言)
文件“”,第1行,在
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/elements.py”,第468行,编译
返回self.\u编译器(方言,bind=bind,**kw)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/ddl.py”,第25行,在编译器中
返回方言.ddl_编译器(方言,self,**kw)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/compiler.py”,第197行,在__
self.string=self.process(self.statement,**compile_-kwargs)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/compiler.py”,第220行,正在处理中
返回对象\u编译器\u分派(自身,**kwargs)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/ext/compiler.py”,第410行,在
λ*arg,**千瓦:现有(*arg,**千瓦))
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/ext/compiler.py”,第448行,在调用中__
返回fn(元素,编译器,**kw)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/alembic/ddl/mysql.py”,第171行,在mysql\u change\u列中
自动增量=element.autoincrement
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py”,第190行,在
spec+=“默认%s”%\u呈现值(编译器、服务器\u默认)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site-packages/alembic/ddl/mysql.py”,第179行,在渲染值中
返回compiler.sql\u compiler.process(expr)
文件“/home/kevin/Code/python/flask/terminus/venv/local/lib/python2.7/site packages/sqlalchemy/sql/compiler.py”,第220行,正在处理中
返回对象\u编译器\u分派(自身,**kwargs)
AttributeError:“int”对象没有属性“\u编译器\u分派”
好吧,我只是