我在Postgres 9.5中有一张表,大约7KK行。 Django版本是1.10.5。数据库和应用程序是在一个本地网络内与Ubuntu 16.04.2不同的服务器。Django挂在应用巨大的迁移
Django的gunicorn服务器已停止,因此没有其他操作正在执行。我要补充有一个字段:
migrations.AlterField(
model_name='balanceentry',
name='reason',
field=models.CharField(
choices=[(b'default', b'Default'), (b'referral', b'Referral'), (b'referrer', b'Referrer'),
(b'random', b'Random'), (b'android_offer', b'Android Offer'), (b'ios_offer', b'iOS Offer'),
(b'offerwall', b'Offerwall'), (b'withdrawal', b'Withdrawal')],
default=b'default', db_index=True, max_length=32),
),
然后我将它:
$ ./manage.py migrate users 0026_auto_20170419_1758
Operations to perform:
Target specific migration: 0026_auto_20170419_1758, from users
Running migrations:
Applying users.0026_auto_20170419_1758...
和监测的Postgres与pg_top。
它做ALTER约15分钟,然后我看到:
34567 postgres 20 0 401M 39M sleep 2:17 0.10% 0.00% postgres: *** *** ip(45200) idle in transaction
这并不适用于大约10分钟变化(仅WCPU从0%变为约0.1%和背面)。
然后这个记录消失(我认为这意味着客户端断开连接),但./manage.py migrate ...
根本没有改变它的状态,它只是保持“运行”而没有改变(我已经等了大约2个小时)。
我试着重新启动postgres服务,如果我这样做,它回滚事务(我认为),释放一些磁盘空间,但迁移管理命令仍然挂起。它甚至没有在Ctrl-C上作出反应,我只能用-9来杀死它。
我还注意到,每次尝试后都会消失大约1-2 GB的可用磁盘空间。
那么,我该如何解决这个问题?
我刚刚考虑过这样的解决方案:)谢谢,我会尝试。 – arts777
是的,这有帮助。谢谢! – arts777