Pyr*_*bie 5 sqlalchemy alembic
我的数据库是MySQL。我使用SqlAlchemy ORM定义和访问它。我使用Alembic进行迁移。我有一个模型,其中的字段曾经只包含英文文本(Ascii / latin-1)。现在,该字段需要包含Unicode文本。为了将模型转换为支持MySQL的Unicode,我需要添加以下类级别属性:mysql_character_set ='utf8'
class MyModel(Base):
__tablename__ = 'mymodel'
mysql_character_set = 'utf8'
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True, nullable=False)
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。我想将此属性添加为Alembic迁移脚本的一部分。我通常使用Alembic出色的自动生成命令:
alembic revision --autogenerate
Run Code Online (Sandbox Code Playgroud)
问题在于该命令不能捕获所有模型更改,尤其不能捕获mysql_character_set属性。
如何手动将此属性添加到Alembic迁移脚本中?
我是这样做的:
from alembic import op
import sqlalchemy as sa
def upgrade():
conn = op.get_bind()
conn.execute(sa.sql.text('ALTER table my_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |