0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

postgresql サンプルデータベース dvdrental で外部キーの不整合が起こる場合の対応

Posted at

EFCore で dvdrental のエンティティとコンテキストを作って select してみたら Could not load type 'Npgsql.Internal.HackyEnumTypeMapping' とか言われて動かない。

このデータベースは id 列 に serial を使っているが 外部キー側は smallint になっているのでそのままではこういうエラーが起こる。

全部 integer に変更する

drop view actor_info; 
drop view customer_list;
drop view film_list;
drop view nicer_but_slower_film_list;
drop view sales_by_film_category;
drop view sales_by_store;
drop view staff_list;


ALTER TABLE public.address 
  ALTER COLUMN city_id SET DATA TYPE integer
  ;
ALTER TABLE public.city 
  ALTER COLUMN country_id SET DATA TYPE integer
  ;
ALTER TABLE public.customer 
  ALTER COLUMN store_id SET DATA TYPE integer,
  ALTER COLUMN address_id SET DATA TYPE integer
  ;
ALTER TABLE public.film 
  ALTER COLUMN language_id SET DATA TYPE integer
  ;
ALTER TABLE public.film_actor 
  ALTER COLUMN actor_id SET DATA TYPE integer,
  ALTER COLUMN film_id SET DATA TYPE integer
  ;
ALTER TABLE public.film_category 
  ALTER COLUMN film_id SET DATA TYPE integer,
  ALTER COLUMN category_id SET DATA TYPE integer
  ;
ALTER TABLE public.inventory 
  ALTER COLUMN film_id SET DATA TYPE integer,
  ALTER COLUMN store_id SET DATA TYPE integer
  ;
ALTER TABLE public.payment 
  ALTER COLUMN customer_id SET DATA TYPE integer,
  ALTER COLUMN staff_id SET DATA TYPE integer,
  ALTER COLUMN rental_id SET DATA TYPE integer
  ;
ALTER TABLE public.rental 
  ALTER COLUMN customer_id SET DATA TYPE integer,
  ALTER COLUMN staff_id SET DATA TYPE integer
  ;
ALTER TABLE public.staff 
  ALTER COLUMN address_id SET DATA TYPE integer,
  ALTER COLUMN store_id SET DATA TYPE integer
  ;
ALTER TABLE public.store 
  ALTER COLUMN manager_staff_id SET DATA TYPE integer,
  ALTER COLUMN address_id SET DATA TYPE integer
  ;

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?