python alembic upgrade 时发生死锁

周末回到家里,在自己笔记本上准备继续编码。自己需要把数据库表结构神马的upgrade一致。

没有想到。

yeelone@yeelone-ThinkPad-Edge:~/project$ alembic upgrade  head
INFO  [alembic.migration] Context impl MySQLImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.migration] Running upgrade 96274508199 -> 4562778272fd

卡住超久。重启了数据库还是一样,真气人。

打开数据库一看当前 所运行所有纯种:

mysql> show processlist; 
+----+------+-----------+--------+---------+------+---------------------------------+------------------------------------------------------------------------------------------------------+
| Id | User | Host      | db     | Command | Time | State                           | Info                                                                                                 |
+----+------+-----------+--------+---------+------+---------------------------------+------------------------------------------------------------------------------------------------------+
| 45 | root | localhost | project | Sleep   |  888 |                                 | NULL                                                                                                 |
| 48 | root | localhost | project | Sleep   |  858 |                                 | NULL                                                                                                 |
| 49 | root | localhost | project | Query   |  834 | Waiting for table metadata lock | ALTER TABLE users ADD COLUMN created DATETIME NOT NULL                                               |
| 50 | root | localhost | project | Query   |  828 | Waiting for table metadata lock | SELECT users.id AS users_id, users.useremail AS users_useremail, users.username AS users_username, u |
| 51 | root | localhost | project | Query   |  170 | Waiting for table metadata lock | ALTER TABLE users ADD COLUMN created DATETIME NOT NULL                                               |
| 54 | root | localhost | project | Query   |  127 | Waiting for table metadata lock | ALTER TABLE users ADD COLUMN created DATETIME NOT NULL 

都在waiting~~~

 Waiting for table metadata lock ,

看来是被死锁了。

我不是什么mysql专家,只好杀掉所有进程来解决这个问题了:

mysql> kill 46;
Query OK, 0 rows affected (0.00 sec)

mysql> kill 47;
Query OK, 0 rows affected (0.00 sec)

mysql> kill 48;
Query OK, 0 rows affected (0.00 sec)

mysql> kill 49;
Query OK, 0 rows affected (0.00 sec)
yeelone@yeelone-ThinkPad-Edge:~/project$ alembic upgrade head
INFO  [alembic.migration] Context impl MySQLImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.migration] Running upgrade 96274508199 -> 4562778272fd
INFO  [alembic.migration] Running upgrade 4562778272fd -> 477f4e47bd07

 

转载于:https://www.cnblogs.com/yeelone/archive/2012/12/08/2808288.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值