在Jenkins上使用Alembic时,连续SQL语句之间的延迟

问题描述

当Alembic在Jenkins上执行迁移脚本的upgrade()函数时,我在连续sql语句之间存在延迟问题:

def upgrade():
    op.execute("DELETE FROM employee WHERE name='John';") #John also has its primary key ID field equal to 1
    op.execute("INSERT INTO employee (id,name,occupation) VALUES (1,'Michael','bartender');")

基本上,第二条语句无法运行完毕,因为我收到一个错误,ID列将包含重复值。显然,第一条op.execute()和第二条{{3}}语句之间存在某种延迟,而第二条语句执行时,数据库仍然包含ID也是1的John的旧条目。

我使用sqlAlchemy的create_engine()在其run_migration_online()配置文件中的Alembic的env.py函数中启动与MysqL数据库连接。我在使用完全相同的代码库和MysqL的本地计算机上也没有遇到任何此类延迟或错误。另外,詹金斯(Jenkins)上的问题是断断续续的,有时候当我点击“ rebuild”时,构建成功。

您知道造成詹金斯怪异的延误的原因是什么吗?

编辑: 我得到的确切错误

sqlalchemy.exc.IntegrityError: (pyMysqL.err.IntegrityError) (1062,"Duplicate entry '1' for key 'PRIMARY'") [sql: "INSERT INTO employee (id,'bartender');"] (Background on this error at: http://sqlalche.me/e/gkpj)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...