问题描述
当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 (将#修改为@)