つよつよにあこがれるプログラマの日記

子育てとかプログラムとか日々の事をここに残します。ぼちぼちやってます。

【.Net Core MVC】npgsqlと戦った

自分の学習実績を思い出せるようにメモ

.Net Core MVC でアプリを書いている(途中、Node.jsに浮気しようとしたが辞めた。

 

今日やったこと

・Oauth2認証の追加(FB,Google

 ・DBのきりかえ、O/R Mapperの使用

 

 --

・Oauth2認証の追加(FB,Google

FacebookGoogle認証を追加した。

.NET Core MVCの初期は大変だったみたいだけど、今はいろいろフレームワーク側がやってくれるので便利。

 

 ・認証の設定
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/?view=aspnetcore-2.1

 

・DBのきりかえ、O/R Mapperの使用

近い内にAWSなりGCPにデプロイする予定なのだが、SQL Serverを使い続けるのもあれなのでDBをPostgresに変更した。O/R Mapperを使うことにした。

 ・O/R Mapper
 http://www.npgsql.org/efcore/index.html

 

 ところが、マイグレーションをかけると怒られて失敗してしまった。

①Npgsql.PostgresException (0x80004005): 42P07: リレーション"AspNetRoles"はすでに存在します
②Npgsql.PostgresException (0x80004005): 42P01: リレーション"hogehoge"は存在しません
③42P07: リレーション"IX_AspNetRoleClaims_RoleId"はすでに存在します

  AspNetのテーブルが作成された後でコケてしまい、hogehogeTablesが作れないみたいようだ。マイグレーションファイルがうまく作れなかったみたい。

自分の操作のせいなのか、Npgsqlのせいなのかわからない。
結局、MigrationClassからAspNet関連テーブルの実行済みのクエリを削除しながらもう一度Update-Daatabase。何回か繰り返してテーブル作成完了

 

--

今日の感想:

O/RMapperもっとハマると思ったけど、普通に動いてよかったー

次はフロントエンドを作り込む。

フロント側書くのめんどくさいなー