微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在烧瓶迁移中重命名表

如何解决如何在烧瓶迁移中重命名表

我有一个名为 company 的模型,我想将其重命名accounts 并且其中有一些数据,但是每当我在制作后运行 flask migrate 命令时模型名称的变化,它实际上创建了这个迁移文件

"""empty message

Revision ID: ead37a7b46e2
Revises: 1463685ab18f
Create Date: 2021-06-23 18:58:51.575071

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import MysqL

# revision identifiers,used by Alembic.
revision = 'ead37a7b46e2'
down_revision = '1463685ab18f'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table('accounts',sa.Column('created_at',sa.DateTime(),nullable=True),sa.Column('updated_at',sa.Column('id',sa.Integer(),nullable=False),sa.Column('name',sa.String(length=255),sa.Column('slug',sa.String(length=3),sa.Column('website_url',sa.String(length=2000),sa.Column('phone',sa.String(length=30),sa.Column('company_upload_directory',sa.String(length=50),sa.Column('max_users',sa.Column('can_supply',sa.Column('can_demand',sa.Column('email',sa.PrimaryKeyConstraint('id')
    )
    op.drop_table('company')
    op.drop_constraint('address_ibfk_1','address',type_='foreignkey')
    op.create_foreign_key(None,'accounts',['company_id'],['id'],ondelete='CASCADE')
    op.drop_constraint('company_groups_ibfk_1','company_groups',ondelete='CASCADE')
    op.drop_constraint('company_plan_ibfk_1','company_plan',ondelete='CASCADE')
    op.drop_constraint('company_services_ibfk_1','company_services',ondelete='CASCADE')
    op.drop_constraint('company_users_ibfk_1','company_users',ondelete='CASCADE')
    op.drop_constraint('service_company_ibfk_1','service_company',ondelete='CASCADE')
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_constraint(None,type_='foreignkey')
    op.create_foreign_key('service_company_ibfk_1','company',ondelete='CASCADE')
    op.drop_constraint(None,type_='foreignkey')
    op.create_foreign_key('company_users_ibfk_1',type_='foreignkey')
    op.create_foreign_key('company_services_ibfk_1',type_='foreignkey')
    op.create_foreign_key('company_plan_ibfk_1',type_='foreignkey')
    op.create_foreign_key('company_groups_ibfk_1',type_='foreignkey')
    op.create_foreign_key('address_ibfk_1',ondelete='CASCADE')
    op.create_table('company',MysqL.DATETIME(),MysqL.INTEGER(display_width=11),autoincrement=True,MysqL.VARCHAR(length=255),MysqL.VARCHAR(length=3),MysqL.VARCHAR(length=2000),MysqL.VARCHAR(length=30),MysqL.VARCHAR(length=50),autoincrement=False,sa.PrimaryKeyConstraint('id'),MysqL_default_charset='latin1',MysqL_engine='InnoDB'
    )
    op.drop_table('accounts')
    # ### end Alembic commands ###

正如您在迁移文件中看到的,它使用了 op.drop_table('company'),因此我收到外键约束错误。我认为,而不是这些,它应该使用类似 rename table 命令的东西。

任何人都可以在这里帮助我吗,我如何使用烧瓶迁移重命名表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?