Amazon RDS Postgresql 未分配主键



我使用 Amazon 的数据库迁移工具从 EC2 上的 Postgresql 数据库迁移到 RDS 实例。

我的应用程序在Python 3.4上使用sqlchemy。自迁移以来,尝试向数据库添加新数据会导致错误sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) null value in column "id" violates not-null constraint

我在pg_admin中检查了数据库,它ALTER TABLE public.users ADD COSTRAINT users_pkey PRIMARY KEY(id);显示为表上的users_pkey约束。

该应用程序能够读取数据并修改现有数据而不会出错。

@stdunbar在这方面为我指出了正确的方向,谢谢。

我不确定这是否是一个完整的"答案",但花了大量时间来找出问题的解决方案。

@studunbar让我看看 RDS 数据库上反映的内容。文档暗示了这一点,但它让我无法理解 - DMS 不会复制任何序列、索引或外键关系。我尝试在事后使用架构迁移工具来执行此操作,但它只是清除了我的数据。使用 before 阻止了我的迁移脚本运行。

这可能是用户错误。但我的解决方法是使用pg_dump和pg_restore进行迁移,完全绕过 DMS。我意识到这仅适用于PostgreSQL。

公平地说,AWS 文档确实简要建议尽可能使用本机工具。

最新更新