Role
の場合 エンティティがデータベースに保存されている場合、このコードはそのロールエンティティ("admin"
の名前)を作成しようとします )アプリケーションが起動するたび。ただし、初回以降、そのロールはすでに存在しているため、「名前」が重複しているというエラーが発生します。やりたいことは、ロールがまだ存在していないことを確認するか、ロールをDBに保存しないことです。
コードを追加して現在のDBを確認し、そのロールが存在しない場合にのみ追加することができます。このようなもの:
Role.find({ name: 'admin' }, function(err, results) {
if (err) { /* handle this! */ }
if (results.length < 1) {
// now we know the DB doesn't have it already, so do the Role creation...
}
});
また、そのロールテーブルに追加するプリンシパルがすでに含まれているかどうかを確認し、それらがまだ存在しない場合にのみ追加することもできます。