Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Update-Database com Erro

Boa tarde pessoal. Aparentemente segui a risca o passo-a-passo da aula, mas na hora de aplicar o comando Update-Database estou recebendo esses erros como saída do comando:

Build started...
Build succeeded.
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      INSERT INTO `AspNetRoles` (`Id`, `ConcurrencyStamp`, `Name`, `NormalizedName`)
      VALUES (99999, 'cbc2467a-d3d8-4479-a4f4-252e66a94dd5', 'admin', 'ADMIN');
Failed executing DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
INSERT INTO `AspNetRoles` (`Id`, `ConcurrencyStamp`, `Name`, `NormalizedName`)
VALUES (99999, 'cbc2467a-d3d8-4479-a4f4-252e66a94dd5', 'admin', 'ADMIN');
MySql.Data.MySqlClient.MySqlException (0x80004005): Duplicate entry 'ADMIN' for key 'RoleNameIndex'
   at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
   at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
   at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
   at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
   at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
   at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Duplicate entry 'ADMIN' for key 'RoleNameIndex'

Será que alguém pode me ajudar a entender essa saída?

2 respostas

Boa noite Naran,

Aparentemente o erro está no momento da execução doInsert verifique se não está faltando nenhum detalhe. Se puder colar esse trecho de código também iria ajudar.

Att.

solução!

Opa! Verifiquei aqui e percebi que o erro se dá devido o fato de role admin já ter sido criada no banco pelo código antigo. Acho que o professor esqueceu de pedir para apagar. Estava dando erro de entrada como se estivesse duplicado. Depois que deletei do banco, o Update-Database rodou liso!