您的位置:首页 > 编程语言 > Python开发

python alembic upgrade 时发生死锁

2012-12-08 08:38 671 查看
周末回到家里,在自己笔记本上准备继续编码。自己需要把数据库表结构神马的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: