У меня есть миграция, как это
migrationBuilder.AlterColumn<int>(
name: "Id",
schema: "{table-schema}",
table: "{table-name}",
nullable: false,
oldClrType: typeof(int))
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.SerialColumn);
Это производит sql как это
DO $$
BEGIN
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '{migration-name}') THEN
ALTER TABLE {table-schema}."{table-name}" ALTER COLUMN "Id" TYPE integer;
ALTER TABLE {table-schema}."{table-name}" ALTER COLUMN "Id" SET NOT NULL;
CREATE SEQUENCE "{table-schema}_Id_seq" AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE NO CYCLE;
END IF;
END $$;
, а затем
DO $$
BEGIN
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '{migration-name') THEN
ALTER TABLE {table-schema}."{migration-name}" ALTER COLUMN "Id" SET DEFAULT (nextval('"{table-name}_Id_seq"'));
ALTER SEQUENCE "{table-name}_Id_seq" OWNED BY "{table-name}"."Id";
END IF;
END $$;
Я получаю следующую ошибку во времяМиграция: System.Exception: 42P01: relation "{table-name}" does not exist
.
Что здесь может быть не так?
Когда я запускаю sql вручную, я получаю сообщение об ошибке в строке ALTER SEQUENCE.Я использую провайдер npgsql 2.1.2 и пробовал его как для postgresql 9.5, так и для 11.