Я пытаюсь выполнить полный сброс первых кодов EF Core в моем проекте. У меня есть все основания для этого (можно объяснить, если это необходимо), но мне трудно заставить его работать.
Я удалил предыдущую базу данных и удалил старый каталог миграции в моем проекте.
См. Ниже журнал. Примерно три четверти пути вниз, вы видите, что EF считает, что база данных уже обновлена. Однако вы видите, что вначале она создала новую базу данных? Примечание. Я урезал много в конце журнала, так как это просто ошибки трассировки стека, потому что он не смог найти таблицу, которая, по его мнению, уже должна была существовать.
Любые рекомендации по воссозданию новой начальной миграции и обновлению базы данных?
PM> Add-Migration InitialCreate
Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
User profile is available. Using 'C:\Users\CollinB\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 2.0.1-rtm-125 initialized 'FilterListsDbContext' using provider 'Pomelo.EntityFrameworkCore.MySql' with options: MaxPoolSize=128 MigrationsAssembly=FilterLists.Api
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE DATABASE 'filterlistsdata';
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (33ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE '__EFMigrationsHistory' (
'MigrationId' varchar(95) NOT NULL,
'ProductVersion' varchar(32) NOT NULL,
CONSTRAINT 'PK___EFMigrationsHistory' PRIMARY KEY ('MigrationId')
);
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (18ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='filterlistsdata' AND TABLE_NAME='__EFMigrationsHistory';
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT 'MigrationId', 'ProductVersion'
FROM '__EFMigrationsHistory'
ORDER BY 'MigrationId';
Microsoft.EntityFrameworkCore.Migrations[20405]
**No migrations were applied. The database is already up to date.**
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT CASE
WHEN EXISTS (
SELECT 1
FROM 'languages' AS 'l')
THEN TRUE ELSE FALSE
END
MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'filterlistsdata.languages' doesn't exist ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'filterlistsdata.languages' doesn't exist
Никогда вручную не удаляйте папку Migrations. Это сэкономит вам много головной боли; вы сначала используете код для создания своей базы данных, поэтому сначала используйте код для удаления.
Сначала закройте визуальную студию и откройте ее. Затем попробуйте снова выполнить миграцию.
если это не сработает, самой простой вещью в этой точке было бы перейти к appsettings.json и изменить имя вашей базы данных. Затем запустите add-migration и обновите базу данных.