Amazonのデータベース移行ツールを使用して、EC2上のPostgreSQLデータベースからRDSインスタンスへの移行を行いました。Amazon RDS Postgresqlプライマリキーが割り当てられていない
私のアプリケーションは、Python 3.4でsqlalchemyを使用しています。移行後、データベースに新しいデータを追加しようとすると、エラーが発生します。sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) null value in column "id" violates not-null constraint
データベースをpg_adminでチェックして、テーブルのusers_pkey制約としてALTER TABLE public.users ADD COSTRAINT users_pkey PRIMARY KEY(id);
を表示します。
アプリケーションはエラーなしでデータを読み取り、既存のデータを変更できます。
これは、自動的に割り当てられるために必要なものではありません。デフォルト値はありますか? – stdunbar
いいえ、以前はデフォルト値なしで動作していました。 インデックスを付けるオプションは冗長ですが、列を指定するコードは変更されておらず、プライマリキーは以前に割り当てられています – brandonjschwartz
"古い"データベースにデフォルト値がありましたか?私の経験では、PostgreSQLはAWS RDS環境ではローカルまたはEC2とまったく同じです。スクリプトを使用してデータベースをローカルに作成し、RDS上で作成し、「うまく動作します」。私は失われているもののように感じる。 – stdunbar