【发布时间】:2022-01-22 23:30:25
【问题描述】:
上下文
环境
后端:symfony 4.4
数据库:PostreSql 10.XX
生产服务器
- AWS EC2 实例,在 Debian 上,包含后端
- 包含数据库的 AWS Amazon-Aurora 实例
测试服务器
EC2 实例,在 Debian 上,包含后端和数据库
开发环境
Ubuntu,包含后端和数据库
我想做什么
在许多实体中添加 Gedmo\SotfDelete 的非常简单的迁移
final class Version20211221101121 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add soft delete';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE xxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
$this->addSql('ALTER TABLE xxxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
$this->addSql('ALTER TABLE xxxxxxxxx DROP deleted_at');
}
}
在我尝试之前
- 我已成功尝试在开发环境中执行迁移
- 我已成功尝试在测试服务器上执行迁移
问题
当我尝试在生产环境中执行迁移时,它会引发 SQL 错误
SQL 错误跟踪:
SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
DETAIL: Process 19401 waits for AccessExclusiveLock on relation 25783 of database 25651; blocked by process 20050.
Process 20050 waits for AccessShareLock on relation 25768 of database 25651; blocked by process 19401.
HINT: See server log for query details.
教义错误追踪:
An exception occurred while executing 'ALTER TABLE xxxxxxxxx ADD deleted_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT
NULL':
SQLSTATE[40P01]: Deadlock detected: 7 ERROR: deadlock detected
DETAIL: Process 19401 waits for AccessExclusiveLock on relation 25783 of database 25651; blocked by process 20050.
Process 20050 waits for AccessShareLock on relation 25768 of database 25651; blocked by process 19401.
HINT: See server log for query details.
在等待查找此问题的原因和解决方案时,我暂时撤消了提交。
你有什么办法解决这个问题吗?
【问题讨论】:
标签: postgresql symfony doctrine amazon-aurora