在更改了某些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设置中的哪一个导致了此问题。
假设数据实际上已插入某处,我还能在哪里找到数据插入的地方?如果我能解决这个问题,则可能会有助于找出问题的根源。
答案 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语句就会按预期工作。