我添加了新模型并推送到我们的登台服务器,运行 syncdb 来创建他们的表,它锁定了。它达到'创建表photos_photousertag'并且postgres输出显示创建'photos_photousertag_id_seq'的通知,但除此之外我什么都没有说。我无法 ctrl+c 同步数据库进程,并且我不知道从这里采取什么路线。有没有其他人遇到过这个?
3 回答
我们使用 postgres,虽然我们没有遇到这个特定问题,但您可能会发现一些步骤对调试很有帮助:
一个。您使用的是什么版本的 postgres 和 psycopg2?就此而言,什么版本的 django?
湾。尝试使用“--verbosity=2”选项运行 syncdb 命令以显示所有输出。
C。通过运行“manage.py sql”命令找到 django 正在生成的 SQL。在 postgres shell 中为您的新模型运行 CREATE TABLE 语句,看看会发生什么。
d。将 postgres 上的错误日志、语句日志和服务器状态日志调高,看看您是否可以捕获任何特定消息。
过去,我们通常发现选项 b 或选项 c 都指出了问题所在。
我也刚刚经历过这种情况,结果证明它只是那个特定表上的一个普通旧锁,与 Django 无关。一旦清除,同步就很好了。
尝试查询同步卡住的表,并首先确保它正常工作。
这里也很奇怪,但只需重新启动 PostgreSQL 服务(或服务器)即可解决。我也尝试在 psql 中手动粘贴表创建代码,但这也没有解决它(好吧,如果它是一个锁定的东西,它就不可能) - 所以我只是使用了重新启动:
systemctl 重启 postgresql.service
那在我的 Suse 盒子上。
不确定重新加载服务/服务器是否也会解除现有的表锁?