我正在尝试使用alembic将SQLAlchemy PostgreSQL ARRAY(文本)字段转换为我的一个表列的BIT(vary = True)字段.
该列目前定义为:
cols = Column(ARRAY(TEXT), nullable=False, index=True)
Run Code Online (Sandbox Code Playgroud)
我想将其更改为:
cols = Column(BIT(varying=True), nullable=False, index=True)
Run Code Online (Sandbox Code Playgroud)
默认情况下似乎不支持更改列类型,因此我手动编辑了alembic脚本.这就是我目前所拥有的:
def upgrade():
op.alter_column(
table_name='views',
column_name='cols',
nullable=False,
type_=postgresql.BIT(varying=True)
)
def downgrade():
op.alter_column(
table_name='views',
column_name='cols',
nullable=False,
type_=postgresql.ARRAY(sa.Text())
)
Run Code Online (Sandbox Code Playgroud)
但是,运行此脚本会出现错误:
Traceback (most recent call last):
File "/home/home/.virtualenvs/deus_lex/bin/alembic", line 9, in <module>
load_entry_point('alembic==0.7.4', 'console_scripts', 'alembic')()
File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 399, in main
CommandLine(prog=prog).main(argv=argv)
File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 393, in main
self.run_cmd(cfg, options)
File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/config.py", line 376, in run_cmd
**dict((k, getattr(options, k)) for k in kwarg)
File "/home/home/.virtualenvs/deus_lex/local/lib/python2.7/site-packages/alembic/command.py", line …Run Code Online (Sandbox Code Playgroud)