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
;