在使用SQLAlchemy向Aurora(PostgreSQL)RDS无服务器群集中插入无数次错误后,我看不到该表。我的数据怎么了?

时间:2020-05-27 22:07:10

标签: postgresql amazon-rds aws-aurora

在更改了某些Terraform代码之后,我将无法再访问添加到Aurora(PostgreSQL)数据库中的数据。数据已按预期添加到数据库中,日志中没有错误,但是使用AWS RDS Query Editor连接到数据库后,我找不到数据。

我用Python代码添加了数千行,这些代码使用SQLAlchemy / PostgreSQL引擎对象从映射字典中插入了一批行,如下所示:

if (count % batch_size) == 0:
    self.engine.execute(Building.__table__.insert(), mappings)
    self.session.commit()

此数据提取的日志未显示任何错误,所有提交似乎都已成功完成。因此,将数据插入了某处,我无法弄清楚该位置,因为该数据没有显示在AWS Console RDS查询编辑器中。我运行下面的SQL查找表,返回零行:

SELECT * FROM information_schema.tables WHERE table_name = 'buildings'

这已按预期完成(即,我可以通过查询编辑器查看Aurora数据库中的数据),所以我试图找出最近修改的Terraform设置中的哪一个导致了此问题。

假设数据实际上已插入某处,我还能在哪里找到数据插入的地方?如果我能解决这个问题,则可能会有助于找出问题的根源。

2 个答案:

答案 0 :(得分:1)

我怀疑误导大写。像"Buildings"。再次搜索:

SELECT * FROM information_schema.tables WHERE table_name ~* 'building';

或者:

SELECT * FROM pg_catalog.pg_tables WHERE tablename ~* 'building';

或者您的目标不是桌子?您可以“写”到简单的视图。检查:

SELECT * FROM pg_catalog.pg_class WHERE  relname ~* 'building';

这些都不是特定于RDS的。在普通的Postgres中是相同的。

如果最后一个查询不返回任何内容,则说明您位于错误的数据库中。 (您知道一个数据库集群中可以有多个数据库吗?)或者您遇到了严重的问题。

请参阅:

答案 1 :(得分:0)

一旦我记录了有关连接的更多信息,我发现所使用的数据库名称不正确,因此我一直在使用错误的数据库名称查询Aurora实例。一旦解决了这个问题并使用了正确的数据库名称,AWS RDS Query Editor中的select语句就会按预期工作。

相关问题